簡體   English   中英

刪除列表中的文件和目錄以外的所有文件和目錄

[英]Delete all files and directories except the ones in a list

我手頭有兩個任務

  1. 從文件夾中獲取10個最新文件,例如C:\\Temp
  2. 刪除其他所有文件夾和文件。

通過使用以下代碼,我得到了第一項工作,感謝Stack Overflow中的朋友。

var imgFiles = (from f in directory.GetFiles(fileType,SearchOption.AllDirectories)
                            orderby f.LastWriteTime descending
                            select f).Take(numberOfFilesToFetch).ToArray();

我需要第2點的幫助一些示例C#代碼將非常有幫助。

如果您只需要刪除文件,我建議您只獲取要刪除的文件列表,因此可以使用“ 跳過”代替“ 獲取”

其他方式是通過Except調用再次調用GetFiles ,如果您在刪除過程中不需要忽略文件列表,則調用效率不高

var filesToBeDeleted = (from f in Directory.GetFiles(fileType,SearchOption.AllDirectories)
                            orderby f.LastWriteTime descending
                            select f).Skip(numberOfFilesToFetch).ToArray();

foreach (var file in filesToBeDeleted)
{
    file.Delete();
}

string [] subdirectoryEntries = Directory.GetDirectories("c:\\temp");

foreach(string dir in subdirectoryEntries)
{
    Directory.Delete(dir) ;
}

我建議您嘗試一下,趕上刪除操作

foreach (var file in directory.GetFiles().Except(imgFiles))
{
    file.Delete();
}
var filesToBeDeleted = directory.GetFiles(fileType, SearchOption.AllDirectories)
                                .Except(imgFiles).ToArray();
for (int i = filesToBeDeleted.Length; i >= 0; i--)
    filesToBeDeleted[i].Delete();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM