2014-12-03 96 views
-1

我正在創建一個文件夾READ-ONLY。我正在檢查它是否是隻讀的。讀取權限被拒絕的文件夾返回TRUE

File file1 = new File("path"); 
Sysout(file1.canRead()); 

上面的代碼給了我TRUE但它應該是FALSE。我在java中的main()方法中運行這個。

我正在使用JDK 1.7.0_67版本。

可以對此進行任何評論。謝謝。

+0

將這些用於文件權限更改** 1。 file.setExecutable(布爾值); - 真,允許執行操作;錯誤地拒絕它。 2. file.setReadable(boolean); - 真,允許讀取操作;錯誤地拒絕它。 3. file.setWritable(boolean); - 真,允許寫操作;假以禁止它。** – 2014-12-03 06:00:57

+2

READ-ONLY文件夾無法寫入,但可以讀取 - 如名稱所示。 – 2014-12-03 06:00:59

+0

以@ThomasStets說另一種方式:只讀意味着'canWrite()'將返回false,但由於只能在只讀文件上執行的操作是** read **,當然' canRead()'返回true。 – 2014-12-03 06:02:37

回答

0

我假設你正在Windows中測試這個。在Windows中,如果將文件夾標記爲只讀,則只讀屬性僅適用於該文件夾內的文件。

因此,如果你的文件夾路徑上檢查File.canRead(),它仍然會返回true,但如果你嘗試檢查File.canRead()的只讀文件夾中的文件,它應該給你假的。

+0

是Dev-an。我正在使用Windows。您的意思是File.canRead()僅適用於文件,而不適用於文件夾或子文件夾。如果是這樣的話,那麼如何在Windows中識別文件夾級別。 – sridhar 2014-12-03 06:21:30

+0

@開發 - 我認爲你在這裏失去了一些東西。只讀只會影響你寫*的能力。它不*意味着你不能閱讀,這意味着你只能*閱讀。 – 2014-12-03 06:29:13

+0

@Thomas Stets - 只需添加到場景中即可。我做了一個文件夾DENY READ。所以,file.canRead()應該是FALSE,但它返回TRUE。 – sridhar 2014-12-03 06:31:50