我试图让我的程序读取包含一些类似文件的目录中的最新文件并检索一个名称,但它仍在读取所有文件。如果有人知道我为什么欣赏这个帮助:)
编辑:撤消
这是我的代码:
public GetMyNames()
{
DirectoryInfo fileDirectory = new DirectoryInfo(@"C:\user\mark\folder");
List<string> files = new List<string>();
int creationDate = 0;
string CreationDate = "";
foreach (FileInfo fileInfo in fileDirectory.GetFiles("*.txt"))
{
string creationTime = fileInfo.CreationTime.ToString();
string[] bits = creationTime.Split('/', ':', ' ');
string i = bits[0] + bits[1] + bits[2];
int e = Int32.Parse(i);
if (e > creationDate)
{
creationDate = e;
files.Add(fileInfo.Name);
}
}
foreach(string file in files)
{
string filePath = fileDirectory + file;
string lines = ReadAllLines(filePath);
foreach (string line in Lines)
{
Name = Array.Find(dexLines,
element => element.StartsWith("Name", StringComparison.Ordinal));
}
MyName = Name[0];
}
答案 0 :(得分:1)
请注意,OrderBy
在排序可枚举的情况下以O(nlog(n))的顺序运行。
我建议使用Linq Max扩展方法,即:
newestFile = files.Max(x => x.CreationDate);
这更有效(以O(n)的顺序运行)并且在我看来更具可读性
答案 1 :(得分:0)
为什么不使用Linq并按日期订购?
files.OrderBy(x => x.CreationDate)