Я запускаю какой-то базовый модульный тест на дату создания файлов, и я запустил в странном случае (по крайней мере для меня):
[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);
}
дает мне ложь ... Единственная разница между двумя существами:
using (StreamWriter sw = File.CreateText(UncFile)) { }
Но я удаляю этот файл сразу после:
if (File.Exists(UncFile))
File.Delete(UncFile);
Может ли кто-нибудь указать мне, что я делаю неправильно?
ТНХ.
[EDIT]
дата во втором примере похожа на первый файл UNC Created:
Debug.Print("UncFile : " + File.GetCreationTime(UncFile).Ticks);
->
UncFile (Init) : 634632802355468953
UncFile (Test) : 634632802355468953
LocalFile (Test) : 634632802355618962
* * Тысяча двадцать-одина [/ EDIT] * * тысяча двадцать-дв