如何使用c#首先从目录中获取旧文件?

时间:2016-06-23 07:31:33

标签: c#

我有一个名为IncomingFiles的文件夹名称。在那个文件夹里面我有多个文件。 Thouse文件只有.xml。

以下是具有不同TimeStamp的IncomingFiles文件夹下的文件列表:

E.g:

+-------------------+---------------------+---------------+
|Name               | Date Modifided      | Type          |
+-------------------+---------------------+---------------+
| test4.xml         | 23/6/2016 12:30 PM  | XML Document  |
| test3.xml         | 23/6/2016 12:20 PM  | XML Document  |
| test2.xml         | 23/6/2016 12:10 PM  | XML Document  |
| test1.xml         | 23/6/2016 12:00 PM  | XML Document  |
+-------------------+---------------------+---------------+

我必须根据较旧的时间获取文件。

E.g:

First i have to fetch  below file:
test1.xml  
Second I have to fetch below file:
test2.xml
Third I have to fetch below file:
test3.xml
Fourth I have to fetch below file:
test4.xml

如何做到这一点。请你帮我解决。

3 个答案:

答案 0 :(得分:3)

使用按LastWriteTime排序的linq,仅使用.xml个文件:

DirectoryInfo dirInfo = new DirectoryInfo("IncomingFiles");
List<FileInfo> files = dirInfo.GetFiles()
    .Where(f => f.Extension == ".xml")        
    .OrderBy(f => f.LastWriteTime)
    .ToList();

答案 1 :(得分:2)

使用linq

var dirInfo = new DirectoryInfo("yourpath");
var files = dirInfo.GetFiles().OrderBy(f => f.CreationTime);

答案 2 :(得分:1)

您可以使用Directory.GetFiles列出指定目录中的文件路径。这允许您指定SearchPatternsSearchOption。然后,您必须使用LINQ扩展方法.OrderBy对其LastWriteTime的基础进行排序。

  var sortedFiles = Directory.GetFiles("path_here", "*.xml", SearchOption.TopDirectoryOnly)
                             .OrderBy(x => new FileInfo(x).LastWriteTime);