1

さて、私はこの方法を使用して多数のファイルを作成し、FileInfo.Create()しばらくしてから、その日に作成されたすべてのファイルを探します。

oCurrentFile 
    = new FileInfo(oFileRegion.Directory.FullName + "\\" + _traceFilePrefix 
                    + sIdentifier + "_" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss.ffff") + _traceFileExt);
FileStream fs = oCurrentFile.Create(); fs.Close();

これは何日も非常にうまくいきました!最近、昨日作成したすべてのファイルを集めようとしました。

IEnumerable<FileInfo> oldFiles =
    (from oldFile in oldFiles
    where oldFile.CreationTime.DayOfYear == DateTime.Now.Substract(new TimeSpan(1,0,0,0).DayOfYear
    orderby oldFile.CreationTime ascending
    select oldFile)

.Count()サプライズを使用してファイルの数を調べたところ、0でした。

そこで、ファイルが見つからなかった理由を確認し、すべてのファイルの作成日が次のようになっていることに気付きました。

01.01.1601 00:00:00.000

一体何?何がそのような奇妙な行動を引き起こすのでしょうか?そして、なぜWindowsはどこからともなく作成日を取得するのをやめたのですか?

4

1 に答える 1

1

FileInfo が存在しないと考えていたファイルに対しても同じ動作をしました。ファイルが存在し、FileInfo オブジェクトの前に作成されたことを確認してください。それ以外の場合は、FileInfo オブジェクト内の状態データを更新するために、FileInfo.Refresh() を呼び出す必要があります。

于 2013-11-19T16:22:48.940 に答える