8

ディレクトリからのみ10個のファイルを返したいです。これは可能ですか?

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

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

この方法ではすべてのXML ファイルが返されますが、最初の 10 個だけを取得したいと考えています。

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 に答える