2013-05-14 124 views
6

我該如何檢查我可以用Java刪除文件?如何檢查我是否可以刪除文件?

例如,我應該能夠刪除文件C:/file.txt,但我從來沒有能夠刪除possible duplicate描述,我不工作的C:/Computer,或My Documents

解決方案。

+0

*「解決方案中可能重複描述不適合我「。*請解釋爲什麼? – 2013-05-14 09:16:08

+0

@Marco Forberg有時它會爲'C:\ file.txt'等常用文件拋出'Access is denied'異常。 – SeniorJD 2013-05-14 10:15:46

回答

10

刪除文件需要文件父級的寫入權限,即存儲文件的目錄。 java中的目錄也用方法canWrite()的類java.io.File的實例表示。

因此,要檢查文件是否可以刪除,請撥打file.getParent().canWrite()

+0

它適用於我,謝謝! – SeniorJD 2013-05-14 10:16:29

+0

所有學分給我的同事@ arn0n – AlexR 2013-05-14 10:29:15

+3

+1優秀的解決方案,但它實際上是'file.getParentFile()。canWrite()'。 – 2013-09-14 07:44:53

3

使用NTFS和Java 7(甲骨文JDK),只有爲我工作的事情確實是

boolean canDelete = file.renameTo(file) 

這是令人驚訝的簡單和工程也爲文件夾,其中有「我的Windows 7 64位盒在「打開」或「鎖定」文件下面的某處。

其他的事情我想和生產誤報:AQUIRE一個的FileLock,文件#canWrite,文件#setLastModified( 「觸摸」),file.getParent()canWrite()

+0

應該注意的是,這個函數的行爲是依賴於平臺的。 – colti 2017-10-06 14:30:48

相關問題