簡體   English   中英

如何使用C#連續讀取文件夾中的文件?

[英]How to continuously read files in a folder using C#?

我想從本地驅動器上的文件夾中連續讀取所有圖像文件,然后進行一些處理並在讀取完所有圖像后結束程序。 圖像編號不是連續的,它們是隨機的,但是它們位於單個文件夾中。 目前,我的程序只能讀取一個文件。 見下面的代碼

string imagePath = Path.Combine(Freconfig.GetSamplesFolder(), "24917324.jpg");

使用FileSystemWatcher https://msdn.microsoft.com/zh-cn/library/system.io.filesystemwatcher(v=vs.110).aspx

FileSystemWatcher watcher = new FileSystemWatcher();
    watcher.Path = Freconfig.GetSamplesFolder();
    watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
       | NotifyFilters.FileName | NotifyFilters.DirectoryName;
    watcher.Filter = "*.jpg";

    // Add event handlers.
    watcher.Changed += new FileSystemEventHandler(OnChanged);
    watcher.Created += new FileSystemEventHandler(OnChanged);
    watcher.Deleted += new FileSystemEventHandler(OnChanged);
    watcher.Renamed += new RenamedEventHandler(OnRenamed);

    // Begin watching.
    watcher.EnableRaisingEvents = true;

在啟動監視程序之前,請使用目錄列表查找所有現有文件並進行處理,然后使用監視程序

這是你想要的? Directory.GetFiles(@"..\\somepath")MSDN

您可以嘗試:

directoryInfo = new DirectoryInfo("C:/YOUR/DIRECTORY/HERE]");
var files = directoryInfo.GetFiles("*.jpg").OrderBy(x => x.CreationTimeUtc);
foreach (var file in files)
{
 //Your processing
}

請注意,這會將所有.jpg文件保存在目錄中。 foreach循環將首先從最早的文件開始。

這應該獲取目錄中的所有文件:

 private List<FileInfo> GetFileInfo()
    {
        string path = @"C:\MyPath";
        List<FileInfo> files = new List<FileInfo>();
        DirectoryInfo di = new DirectoryInfo(path);

       //TopDirectoryOnly if you don't want subfolders
        foreach (FileInfo f in di.GetFiles("*.jpg", SearchOption.TopDirectoryOnly))
        {
            files.Add(f);
        }

        return files;
    }

然后在您的代碼中,對返回的集合進行迭代,並執行您需要對它們進行的所有工作。

暫無
暫無

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

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