我正在编写一个程序,当给定日期、文件夹路径和文件扩展名时,它将查看文件夹并查找从月初到当前日期具有最后访问时间的所有文件,并且只有文件使用传递的文件扩展名。
我要查找的文件始终位于文件夹树中的同一级别,因此我可以在程序中编写代码,挖掘多远才能找到文件。
目前我的程序一天大约需要一分钟,所以今天(16 号)大约需要十六分半钟。
我想制作一个程序来填充查找文件夹路径中某个日期范围的所有文件,并从文件中提取信息。我只是不想编写程序必须查看的深度,以防我的业务更改他们存储文件的方式。
我设法编写代码,如果给定一个文件夹,程序将显示日期范围内所有文件的名称,但这需要 25 分钟。这是代码
TimeSpan BeginningTime = DateTime.Now.TimeOfDay;
DateTime BeginningDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
DateTime EndingDate = DateTime.Now;
string[] FoldersToLookAt = { @"e:\", @"e:\Kodak Images\", @"e:\images\", @"e:\AFSImageMerge\" };
foreach (string FolderPath in FoldersToLookAt)
{
for (DateTime Date = BeginningDate; Date <= EndingDate; Date = Date.AddDays(1))
{
string DateString = Date.ToString("yyMMdd");
string FilePath = (FolderPath + DateString);
DirectoryInfo FilesToLookThrough = new DirectoryInfo(FilePath);
if (FilesToLookThrough.Exists)
{
foreach (var MyFile in FilesToLookThrough.EnumerateFiles("*.dat", SearchOption.AllDirectories))
{
if (MyFile.LastAccessTime >= BeginningDate)
{
Console.WriteLine(MyFile.FullName);
}
}
}
}
}
据我所知,这首先获取所有文件,然后遍历所有文件并打印出所有最后访问时间大于开始日期的文件。
他们在 C# 中是一种从文件中提取信息而不将其存储在列表中的方法吗?还是我必须从头开始构建程序?