假設我有我的目錄結構如下所示:刪除文件,只有當所有的可刪除 - 饒無辜
mydirectory中
>文件1
>文件2
>文件3
> UndeletableFile
> FILE4
假設我已經實現了一個遞歸算法來刪除一個文件夾的內容,然後是文件夾本身和/或使用了一個極好的建議here
現在這裏是我無法找到一個解決方案後,在網絡上搜索一下和SO:
我想要刪除整個文件夾,但我想要做到這一點只有當它會成功爲每個文件和那裏的子文件夾。當前的實現(確切地說爲java.io.File.delete()
)將在被調用時立即刪除文件,然後轉到下一個文件。如果在刪除文件夾的過程中中途遇到問題,則會在系統上留下UndeletableFile
和File5
以及MyDirectory
。
這種情況下是否有一種方法或最佳實踐算法?
目標是讓讓可刪除文件生效如果操作將中途失敗。畢竟他們不應該死,如果他們的家能夠存活下去,對吧?
我曾經想過到目前爲止:
也許這將是明智的只是重命名的所有文件,而不是先刪除它們,像這樣
mydirectory中
> File1temp
> File2temp
> ..
之後,如果進程失敗,我可以遍歷目錄再次重新命名所有文件恢復正常,如果成功,我可以刪除它們。
但是這對我來說效率非常低,是不是有更好的解決方案? 在我看來,這應該是一個共同的問題,請提供一個鏈接,如果我忽略了一些東西
除您的應用程序之外,還有哪些人可以使用此文件?誰製造他們?其他過程?它由您或其第三方軟件管理? – Mikhail
@Mikhail用戶可能會直接影響該文件夾。它們由另一個應用程序生成。當時沒有其他進程正在運行。由我管理。 **但是我想強調一下:**沒關係,如果它現在失敗了,我只想回到「不要刪除任何東西」,如果發生什麼事情 – avalancha