私は、ファイルの作成日にいくつかの基本的なユニットテストを実行していると私は奇妙な場合にrunnedに応じて変化している:のCreationDateは(少なくとも私には)コンテキスト
[TestInitialize]
public void Initialize()
{
if (File.Exists(UncFile))
File.Delete(UncFile);
if (File.Exists(LocalFile))
File.Delete(LocalFile);
}
[TestMethod]
public void ProxyFile_DeleteOlderFileOnLocalSystem()
{
using (StreamWriter sw = File.CreateText(LocalFile)) { }
Thread.Sleep(50);
using (StreamWriter sw = File.CreateText(UncFile)) { }
Thread.Sleep(50);
DateTime UncDate = File.GetCreationTime(UncFile);
DateTime OldLocalDate = File.GetCreationTime(LocalFile);
Assert.IsTrue(UncDate > OldLocalDate);
}
作品罰金を!一方:
[TestInitialize]
public void Initialize()
{
using (StreamWriter sw = File.CreateText(UncFile)) { }
if (File.Exists(UncFile))
File.Delete(UncFile);
if (File.Exists(LocalFile))
File.Delete(LocalFile);
}
[TestMethod]
public void ProxyFile_DeleteOlderFileOnLocalSystem()
{
using (StreamWriter sw = File.CreateText(LocalFile)) { }
Thread.Sleep(50);
using (StreamWriter sw = File.CreateText(UncFile)) { }
Thread.Sleep(50);
DateTime UncDate = File.GetCreationTime(UncFile);
DateTime OldLocalDate = File.GetCreationTime(LocalFile);
Assert.IsTrue(UncDate > OldLocalDate);
}
は私に2つのビーイングの間に偽...唯一の違いgaves:
using (StreamWriter sw = File.CreateText(UncFile)) { }
をしかし、私はちょうど後にこのファイルを削除します。
if (File.Exists(UncFile))
File.Delete(UncFile);
は、誰かが私を指摘でした私は何を正しくしていないのですか?
thx。
[EDIT]
第二の例では、日付は、UNCが作成した最初のファイルと同様のようです:
Debug.Print("UncFile : " + File.GetCreationTime(UncFile).Ticks);
->
UncFile (Init) : 634632802355468953
UncFile (Test) : 634632802355468953
LocalFile (Test) : 634632802355618962
それはのように思えますUncFile、おそらくUncFileはInitialize()で削除されていませんか? –
テストをステップバイステップでデバッグしてみてください。これを実行している間にファイルを見てください。何が起きているのか分かりません。 – dillenmeister
[Windowsファイルシステムの複製:whileが削除され、再度作成されたときにファイルの作成時間が変わらない](http://stackoverflow.com/questions/8804342/windows-filesystem-creation-time-of-a-ファイルが変更されたときに削除されます) –