2011-08-04 56 views
2

我試圖刪除與我們的命名標準不匹配的文件和文件夾。那麼我似乎可以循環瀏覽一系列不匹配的收集文件和文件夾並刪除它們。我遇到的問題是我無法刪除其中有空格的文件。我使用Strawberry Perl在Windows上運行。如何取消與空格鏈接的Windows文件夾?

這裏是陣列

Picture.jpg 
Sample Document.doc 
New Folder 

我可以成功地刪除的唯一事情是在這個例子中Picture.jpg的樣品。

下面是函數

foreach my $folder (@$returned_unmatches) { 
    print "$folder\n"; 
    remove_root_junk($office,$folder); 
} 

這裏是子程序。

sub remove_root_junk { 

my $office = shift; 

my $folder = shift; 

my $order_docs_path = $office_names{$office}; 

unlink "$order_docs_path\\$folder"; 

}

$order_docs_path只是完整路徑最多的地方,我的工作。在這種情況下,C:\Data\Locations\Canton\Order_Documents如果這有幫助的話。

回答

3

在正常情況下,不支持直接取消鏈接目錄。對於unlink文檔說:

注:unlink不會嘗試刪除目錄,除非你是超級用戶,並且-U標記提供給Perl的。即使滿足這些條件,也要警告,取消鏈接目錄可能會對文件系統造成損害。最後,在許多操作系統上不支持在目錄上使用unlink。改爲使用rmdir

如果子目錄不爲空,則rmdir文檔建議在使用File::Pathrmtree

+0

當然你會繼續使用'unlink'作爲常規文件。 –

+0

+1'使用File :: Path;''rmtree'也會移除純文件。 – Dallaylaen