私は、日付、フォルダー パス、およびファイル拡張子を指定すると、フォルダーを調べて、月初から現在の日付までの最終アクセス時刻を持つすべてのファイルを検索し、ファイルのみを検索するプログラムを作成しています。渡されたファイル拡張子を付けます。
探しているファイルは常にフォルダー ツリーの同じレベルにあるため、どこまで掘り下げてファイルを見つけるかをプログラムにコーディングできます。
現在、私のプログラムは 1 日約 1 分かかるため、今日 (16 日) は約 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# の方法はありますか? それとも、プログラムを最初から作成する必要がありますか?