Mam plik, z którego usunąłem każde pozwolenie. Nikt nie powinien być w stanie odczytać pliku, prawda? W rzeczywistości, jeśli biegnęJava - file.length() zwraca, nawet jeśli plik nie jest czytelny.
File f = new File("not_readable.pdf");
System.out.println(f.canRead())
uzyskać
false
Jednak jeśli zadzwonię
File f = new File("not_readable.pdf");
System.out.println(f.length())
uzyskać
455074
To jest moje zrozumienie, że w celu aby uzyskać rozmiar pliku, należy otworzyć i przeczytać Najpierw plik, ale ten wynik zdecydowanie sugeruje, że się mylę. Czy ktoś wie, dlaczego tak się dzieje? Czy istnieje sposób, aby uniemożliwić dostęp do rozmiaru pliku przez metodę file.length() Java?
używam Ubuntu 12.10
Czy system plików ext * zapisuje rozmiar? Spróbuj tego: plik 'cat/dev/urandom>; plik chmod 000; ls -sh file; 'Mogę się mylić, ale jestem prawie pewien, że' ls' może odczytać rozmiar pliku, nawet jeśli uprawnienia są zerowe. – BenjiWiebe
Dlaczego musisz otworzyć plik, aby uzyskać jego długość? Zostaną one zapisane w katalogu informacji w systemie plików. – OldProgrammer