8

我只想从一个目录返回 10 个文件。这可能吗?

DirectoryInfo d = new DirectoryInfo(HttpContext.Current.Server.MapPath("~/xml"));

FileInfo[] files = d.GetFiles("*.xml");

这种方式返回所有XML 文件,但我只想获得前十个。

4

4 回答 4

12

您可以添加扩展方法 Take(10) 以仅获取前 10 个文件。

var d = new DirectoryInfo(HttpContext.Current.Server.MapPath("~/xml"));
var files = d.GetFiles("*.xml").OrderByDescending(fi=>fi.LastWriteTime).Take(10);
于 2011-05-05T14:40:55.463 回答
11

如果您使用的是 .NET4,那么您可能应该改用EnumerateFiles扩展Take方法:

var d = new DirectoryInfo(HttpContext.Current.Server.MapPath("~/xml"));
FileInfo[] files = d.EnumerateFiles("*.xml").Take(10).ToArray();
于 2011-05-05T14:47:44.163 回答
1

你必须和杰克提到的一样,但不是FileInfo[] files

      DirectoryInfo d = new DirectoryInfo("~/xml");
      IEnumerable< FileInfo> files = d.GetFiles().Take(10);

                         OR

     DirectoryInfo d = new DirectoryInfo("~/xml");
      FileInfo[] files = d.GetFiles().Take(10).ToArray();
于 2011-05-05T14:52:26.300 回答
-1
  var directory = new DirectoryInfo(Tab16_mainPath);


  var myFile = (from f in directory.GetFiles().Take(3)
                orderby f.LastWriteTime descending
                select f).ToArray();
于 2016-02-11T15:55:29.263 回答