2010-02-09 28 views
1

在Perl中,我做了:Perl的rmtree()不刪除win32目錄,成功在第二次嘗試

rmtree($myfolder); 

往往失敗在Windows上。當再次運行時,它會成功。它似乎不知何故需要一段時間才能刪除文件夾中的文件,並以某種方式嘗試在文件消失之前刪除該文件夾。

有沒有一個「這個實際工作」的Perl方法來刪除一個目錄及其在Windows上的所有內容?

+2

Perl中沒有內置的'rmtree'。你是否使用File :: Path中的'rmtree'函數或其他'rmtree'? – friedo 2010-02-09 19:59:32

+0

我使用File :: Path中的rmtree – 2010-02-10 13:46:43

回答

2

你有病毒掃描程序運行嗎?如果它正在掃描文件,它將打開文件。 Windows不會讓您刪除由另一個進程打開的文件/目錄。

2

@OP,無論什麼時候發生,總是檢查你是否可以處理這些錯誤。見perldoc File::Path。在remove_tree()下,您可以使用verboseerror => \$err向您顯示遇到的錯誤。

2

我接管並大大改進了File::Remove,而這又對於刪除東西有點偏激和偏執。

它可能會做你想做的。

如果它不讓我知道,我會改進它。

相關問題