我想实现Directory作为参数接收的函数,integer它代表文件的数量并从中返回最新的文件Direttory
所以我有这个功能:
public static IEnumerable<string> EnumerateDirectories(string parentDirectory, string searchPattern, SearchOption searchOpt, int numberOfFiles)
{
try
{
var directories = Enumerable.Empty<string>();
if (searchOpt == SearchOption.AllDirectories)
{
directories = Directory.EnumerateDirectories(parentDirectory).SelectMany(x => EnumerateDirectories(x, searchPattern, searchOpt));
}
return directories.Concat(Directory.EnumerateDirectories(parentDirectory, searchPattern));
}
catch (UnauthorizedAccessException)
{
return Enumerable.Empty<string>();
}
}
Run Code Online (Sandbox Code Playgroud)
可以使用这个Linq:
var directory = new DirectoryInfo("C:\\MyDirectory");
var myFile = (from f in directory.GetFiles()
orderby f.LastWriteTime descending
select f).First();
Run Code Online (Sandbox Code Playgroud)
你可以使用Enumerable.Take:
var myFiles = (from f in directory.GetFiles()
orderby f.LastWriteTime descending
select f).Take(numberOfFiles);
Run Code Online (Sandbox Code Playgroud)
或者在方法语法中:
myFiles = directory.GetFiles().OrderByDescending(f => f.LastWriteTime).Take(numberOfFiles);
Run Code Online (Sandbox Code Playgroud)
这将返回尽可能多的文件(最大numberOfFiles).如果你想要三个,但只有两个你得到两个.
| 归档时间: |
|
| 查看次数: |
655 次 |
| 最近记录: |