ファイルの削除と再書き込みに関する奇妙な動作に気付きました。2 つの操作の間隔が十分に短いと、ファイルの作成時間が更新されません。
次のコードを実行しました:
File.Delete("hello");
using(var stream = new StreamWriter("hello"))
{
stream.WriteLine("hello");
}
var f = new FileInfo("hello");
Console.WriteLine("{0} {1}ms", f.CreationTime, f.CreationTime.Millisecond);
行にブレークポイントを設定するとusing(...)
、削除後にファイルが消えるのがわかりますが、最後には古い作成日が表示されます。エクスプローラーからファイルを手動で削除してからこのコードを実行することもできますが、古い作成時刻が表示されます。
ただし、削除と再作成の間に不確定な時間 (約 1 分) 待機すると、作成時間が正しく設定されます (上記のブレークポイントでデバッガーを待機すると機能します)。
これはどこから来たのですか?それは文書化されたウィンドウの動作ですか?私は何かを忘れていますか?
PS : Windows XP でこれをテストしています。