![](/img/trans.png)
[英]Is it possible to enable yield return on DirectoryInfo.GetFiles?
[英]Why my DirectoryInfo.GetFiles return 0 results although the folder if full
我嘗試從我的Directory
獲取5個最新文件:
string folder = @"C:\temp";
DirectoryInfo dir = new DirectoryInfo(folder);
var files = dir.GetFiles()
.OrderByDescending(f => f.LastWriteTime).Take(5);
並返回0結果,盡管該文件夾如果有完整的f個文件。
更新:
private static List<string> _folders;
public delegate void OnFileAddDelegate(FileInfo[] files);
public event OnFileAddDelegate OnFileAddEventHandler;
public void SearchFiles()
{
foreach (string folder in _folders)
{
if (Directory.Exists(folder))
{
DirectoryInfo dir = new DirectoryInfo(folder);
var files = dir.GetFiles()
.OrderByDescending(f => f.LastWriteTime).Take(5).ToArray();
foreach (var item in files)
OnFileAddEventHandler(files);
}
}
}
當前,我的問題是我正在尋找最新的5個文件,但是如果只有1個文件返回的結果超過1個(相同文件兩次)
您正在調用您的處理程序,並在枚舉EACH文件時將所有文件傳遞給它(您不是傳遞項目而是文件,因此,如果您說10次,說10次,則傳遞整個列表)
你在做什么 :
foreach (var item in files)
OnFileAddEventHandler(files);
您可能想做什么
OnFileAddEventHandler(files);
或者如果它只需要一個文件
foreach (var item in files)
OnFileAddEventHandler(item);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.