我正在使用以下代碼洗掉具有特定擴展名的檔案
private void deleteFilesFromLocalDirectory() {
DirectoryInfo di = new DirectoryInfo(@"Z:\Doku\Instructions\");
FileInfo[] files = di.GetFiles("*.odt").Where(p => p.Extension == ".odt").ToArray();
foreach (FileInfo file in files)
try
{
file.Attributes = FileAttributes.Normal;
File.Delete(file.FullName);
}
catch { }
}
我在說明中有很多檔案夾,我希望我的代碼轉到說明中的每個檔案夾并洗掉帶有“.odt”擴展名的檔案。目前我的代碼只洗掉我提供的位置上的“.odt”檔案,即 (Z:\Doku\Instructions)
我想我的代碼洗掉“的.odt”從內到所有檔案夾的檔案說明
uj5u.com熱心網友回復:
檢查您正在使用的 API的檔案總是一個好主意。您可以使用此多載來搜索所有嵌套檔案夾。而且您不需要該Where子句,因為您已經指定了擴展名。
string[] files = Directory.GetFiles("your path here", "*.odt", System.IO.SearchOptions.AllDirectories).ToArray();
您也可以手動遞回檔案夾
uj5u.com熱心網友回復:
有一個Directory.GetFilesAPI的多載,它接受一個SearchOption允許您指定要搜索當前字典及其所有子目錄。
它回傳一個string[]所以你應該修改你的當前:
private void deleteFilesFromLocalDirectory()
{
string[] files = Directory.GetFiles(@"Z:\Doku\Instructions\", "*.odt",
System.IO.SearchOption.AllDirectories);
foreach (string file in files)
try
{
File.Delete(file);
}
catch { }
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/388590.html
上一篇:如何在配置連接時將x-max-length和x-overflow添加到MassTransit佇列?
下一篇:C#.NET6.0-僅exe嗎?
