Zmiana atrybutów plików

0

Witam,
Czy da się w Javie zmieniać atrybuty, a dokładniej atrybut pliku "ukryty"?

Wiem że mogę zmienić readonly albo executable ale czy da się plik za pomocą Javy ukryć lub odkryć?

0

Windowsowe polecenie attrib, dla linuxa sprawdź + Runtime.getRuntime().exec("tutaj attrib z parametrami");

1

W Java7:

Files.setAttribute(sciezka, "dos:hidden", true);
0

Z atrybutami akurat ciężko o przenośność, bo różne FS to różne zasady.

Java od wersji 7 ma w standardzie kilka interfejsów rozszerzających AttributeView (konkretniej FileAttributeView):

Klasa Files to fasada ze statycznymi metodami delegującymi do odpowiedniego providera (instancja FileSystemProvider).

Do wyciągnięcia odpowiedniego FileAttributeView mamy metodę Files.getFileAttributeView(Path path, Class<? extends FileAttributeView> type).
Zwraca null, jeśli dany widok nie jest dostępny.

Do odczytu atrybutów i manipulacji nimi mamy metody Files.getAttribute(Path path, String attribute) i Files.setAttribute(Path path, String attribute, Object value).
Rzucają UnsupportedOperationException, jeśli widok nie jest dostępny.
Argument attribute jest w postaci "[view:]attribute", gdzie view to opcjonalna nazwa widoku (domyślnie basic), a attribute to nazwa atrybutu.
Przykład w poście u góry.

Oczywiście to rozwiązanie zadziała na windowsach, ale na linuksach już nie, bo tam pliki ukrywa się kropką w nazwie.
Z odczytem atrybutu już łatwiej, bo mamy metodę isHidden, która bierze to pod uwagę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1