繁体   English   中英

为什么我的DirectoryInfo.GetFiles返回0结果,尽管该文件夹已满

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM