簡體   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