フォルダーに N 個のファイルがあります。いくつかの情報が時々書き込まれます。情報がどのように追加されるかについての厳密なロジックはありません。ファイルの内容は関係ありません。
すべてのファイルの最終変更時刻を取得し、比較して適切なものを選択するにはどうすればよいですか?
フォルダーに N 個のファイルがあります。いくつかの情報が時々書き込まれます。情報がどのように追加されるかについての厳密なロジックはありません。ファイルの内容は関係ありません。
すべてのファイルの最終変更時刻を取得し、比較して適切なものを選択するにはどうすればよいですか?
名前空間System.IO
には、ファイルシステムの内容に関する情報を取得するのに役立つクラスがあります。少しの LINQ を使用すると、必要なことを非常に簡単に行うことができます。
// Get the full path of the most recently modified file
var mostRecentlyModified = Directory.GetFiles(@"c:\mydir", "*.log")
.Select(f => new FileInfo(f))
.OrderByDescending(fi => fi.LastWriteTime)
.First()
.FullName;
ここで少し注意する必要があります (たとえば.First()
、空のコレクションで呼び出されたために、指定されたディレクトリに一致するファイルがない場合にスローされます) が、これは一般的な考え方です。
var file = new DirectoryInfo(dirname)
.GetFiles()
.OrderByDescending(f => f.LastWriteTime)
.FirstOrDefault();
これを試して
DirectoryInfo DR = new DirectoryInfo(@"Path to directory where files are stored");
FileInfo FR = DR.GetFiles();
foreach(FileInfo F in FR)
{
Console.WriteLine("Last Edit Time : {0}",F.LastWriteTime);
}
名前空間を追加することを忘れないでください
using System.IO;