我只想从一个目录返回 10 个文件。这可能吗?
DirectoryInfo d = new DirectoryInfo(HttpContext.Current.Server.MapPath("~/xml"));
FileInfo[] files = d.GetFiles("*.xml");
这种方式返回所有XML 文件,但我只想获得前十个。
您可以添加扩展方法 Take(10) 以仅获取前 10 个文件。
var d = new DirectoryInfo(HttpContext.Current.Server.MapPath("~/xml"));
var files = d.GetFiles("*.xml").OrderByDescending(fi=>fi.LastWriteTime).Take(10);
如果您使用的是 .NET4,那么您可能应该改用EnumerateFiles
扩展Take
方法:
var d = new DirectoryInfo(HttpContext.Current.Server.MapPath("~/xml"));
FileInfo[] files = d.EnumerateFiles("*.xml").Take(10).ToArray();
你必须和杰克提到的一样,但不是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();
var directory = new DirectoryInfo(Tab16_mainPath);
var myFile = (from f in directory.GetFiles().Take(3)
orderby f.LastWriteTime descending
select f).ToArray();