簡體   English   中英

如何遞歸列出所有文件並獲取“正在運行”的文件

[英]How to recursively list all the files in and get the files “on going”

我正在編寫一個程序,需要在目錄及其所有子目錄中搜索具有特定擴展名的文件。 這將在本地和網絡驅動器上使用,因此性能有點問題。

我知道我可以使用這種選擇:

  foreach (string file in Directory.EnumerateFiles(
        path, "*.*", SearchOption.AllDirectories))
    {
        ///
    }

但我的文件夾會有很多文件,所以我想知道如何改變這種類型的搜索返回文件“正在進行”而不是等待所有搜索將完成(類似於隊列)

如果你的意思是你的方法應該逐個返回它們(假設你已經理解了EnumerateFiles()就已經這樣做了)。 使用收益率:

public IEnumerable<string > Foo(string path)
{
     foreach (string file in Directory.EnumerateFiles(
        path, "*.*", SearchOption.AllDirectories))
     {
         // Add additional logic if you need here
         yield return file;
      }
}

這樣,如果你在方法上使用foreach運行,你將一次獲得每個文件,並且可以在方法中添加其他邏輯。

暫無
暫無

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

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