![](/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.