1

少し問題がありますが、最新のtxtファイルを開こうとしています。ボタンを使用していますが、キャッチで開くにはtxtファイルが必要です。数百を超えるテキストファイルがあり、日付と時刻で最後のファイルが必要です。

//..............更新しました.............//

これは私のファイルがいくつかの余分なログがあり、それらがコンテンツ的に更新されているように見えるより良い例です

commandlog2012081410   (2012-08-14 /  01:01)
commandlog2012081411   (2012-08-14 /  10:30)
commandlog2012081412   (2012-08-14 /  12:36)
Sample2012082207   (2012-08-22   /  02:12)
Sample2012082208   (2012-08-22   /  06:28)
Sample2012082209   (2012-08-22   /  09:14)
faillog2012075671   (2012-07-17  /  01:20)
faillog2012075672   (2012-07-17  /  08:00)
faillog2012075673   (2012-07-17  /  09:00)
chargedlog203416771   (2012-07-05 /  20:36)
chargedlog203416772   (2012-07-05 /  21:20)
chargedlog203416773   (2012-07-05 /  22:42)
vanishlog2012324795   (2012-07-21 / 17:00)
vanishlog2012324796   (2012-07-21 / 19:31)
vanishlog2012324797   (2012-07-21 / 20:28)
debuglog123131231    (2012-08-22 / 05:10)
debuglog123131232    (2012-08-22 / 06:12)
debuglog123131233    (2012-08-22 / 09:14)
droplogg12313131    (2012-08-06 / 10:10)
droplogg12313132    (2012-08-06 / 16:41)
exitlog123131313     (2012-08-22  /   01:01)
exitlog123131314     (2012-08-22  /   01:12)
exitlog123131315     (2012-08-22  /   09:14)
log201123131     (2012-08-22  / 09:12)
log201123132     (2012-08-22  / 09:14)

// Sample2012082209(2012-08-22 / 09:14)//を開く必要があります。他のいくつかのtxtファイルが同時に終了するのを見ることができるので、その1つのファイルを取り出して開くことも可能です。それ

        catch (Exception ex)
        {
            MessageBox.Show("Error" + ex.Message.ToString());
         (Open newest Sample txt file here)
        }
4

2 に答える 2

3

Linq とFile.GetLastAccessTimeMethod を使用して、最後の openend ファイルを取得できます。

var openedFiles = from fName in Directory.EnumerateFiles(dir, "*.txt")
                 orderby File.GetLastAccessTime(fName) descending
                 select new FileInfo(fName);
if (openedFiles.Any())
{
    var lastOpenedFile = openedFiles.First();
}

Directory.EnumerateFiles(dir, "*.txt")txt指定されたディレクトリ内の -filesのみを返します。

編集:編集していくつかのコメントを書いたとしても、質問はまだ明確ではありません。しかし、特定の名前 (fe "Sample" )で始まるファイルのみが必要な場合は、次の検索パターンを調整するだけで済みEnumerateFilesます。

var name = "Sample";
var openedFiles = from fName in Directory.EnumerateFiles(dir, name + "*.txt")
                  orderby File.GetLastAccessTime(fName) descending
                  select new FileInfo(fName);
于 2012-08-22T07:00:05.980 に答える
0

クラス DirectoryInfo を使用して、特定のディレクトリに関する情報を取得できます。そこからファイルを取得し、クラス FileInfo を使用して作成日などの情報を取得できます。次に例を示します。

    DirectoryInfo dirInfo = new DirectoryInfo(@"C:\");
    foreach (FileInfo file in dirInfo.GetFiles())
    {
        DateTime creationdate = file.CreationTime;
    }

さらに情報が必要な場合はコメントしてください

于 2012-08-22T07:00:48.343 に答える