Reputation: 409
I have ASP.NET (C#) 4.0.
My code is like this:
public IEnumerable<string> GetFiles(string searchPatternExpression)
{
string path = @"D:\xxx\";
SearchOption searchOption = SearchOption.TopDirectoryOnly;
Regex reSearchPattern = new Regex(searchPatternExpression);
return Directory
.EnumerateFiles(path, "*", searchOption)
.Where(file => reSearchPattern.IsMatch(Path.GetFileName(file)))
.OrderBy(file => file);
}
How can I order by file's creation date?
Upvotes: 2
Views: 427
Reputation: 236228
Thus you need to get file creation time, it's better to use DirectoryInfo
to get FileInfo
s instead of simple strings:
public IEnumerable<string> GetFiles(string searchPatternExpression)
{
string path = @"D:\xxx\";
SearchOption searchOption = SearchOption.TopDirectoryOnly;
Regex reSearchPattern = new Regex(searchPatternExpression);
return new DirectoryInfo(path)
.EnumerateFiles("*", searchOption)
.Where(file => reSearchPattern.IsMatch(file.Name))
.OrderBy(file => file.CreationTime)
.Select(file => file.FullName); // return just names
}
Upvotes: 7
Reputation: 35891
Try this:
public IEnumerable<string> GetFiles(string searchPatternExpression)
{
string path = @"D:\xxx\";
SearchOption searchOption = SearchOption.TopDirectoryOnly;
Regex reSearchPattern = new Regex(searchPatternExpression);
return Directory
.EnumerateFiles(path, "*", searchOption)
.Where(file => reSearchPattern.IsMatch(Path.GetFileName(file)))
.OrderBy(file => new FileInfo(file).CreationTime);
}
Upvotes: 0