我有一個文件,從中我已經禁止了所有權限。沒有人應該能夠讀取文件,對吧?事實上,如果我跑Java - file.length()即使文件不可讀也會返回
File f = new File("not_readable.pdf");
System.out.println(f.canRead())
我得到
false
但是,如果我叫
File f = new File("not_readable.pdf");
System.out.println(f.length())
我得到
455074
這是我的理解是,爲了獲得文件大小必須打開並閱讀e文件,但這個結果強烈表明我錯了。有誰知道爲什麼發生這種情況?另外,有沒有辦法阻止Java的file.length()方法訪問文件的大小?
我使用Ubuntu 12.10
ext *文件系統保存大小嗎?試試這個:'cat/dev/urandom> file; chmod 000文件; ls -sh文件;'我可能是錯的,但我很確定'即使權限爲零,ls'也可以讀取文件大小。 – BenjiWiebe
爲什麼你必須打開文件才能獲得長度?這將被存儲在文件系統中的目錄信息中。 – OldProgrammer