je courais un certain test unitaire de base à la date de création de fichiers et je runned dans une affaire étrange (pour moi au moins):CreationDate d'un fichier est en train de changer en fonction du contexte
[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);
}
fonctionne très bien! tandis que:
[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);
}
me gaves faux ... La seule différence entre les deux étant:
using (StreamWriter sw = File.CreateText(UncFile)) { }
Mais je supprimer ce fichier juste après:
if (File.Exists(UncFile))
File.Delete(UncFile);
Quelqu'un pourrait-il me signaler ce que je ne fais pas bien?
thx.
[EDIT]
la date dans le second exemple semble être comme le premier fichier UNC Créé:
Debug.Print("UncFile : " + File.GetCreationTime(UncFile).Ticks);
->
UncFile (Init) : 634632802355468953
UncFile (Test) : 634632802355468953
LocalFile (Test) : 634632802355618962
[/ EDIT]
Il semble que si le temps de création de la première UncFile est la même que la date de création du second UncFile, peut-être UncFile n'est pas supprimé dans Initialize()? –
Essayez de déboguer votre test étape par étape et regardez les fichiers en faisant cela et je suis sûr que vous comprendrez ce qui se passe. – dillenmeister
duplication possible de [système de fichiers Windows: l'heure de création d'un fichier ne change pas lorsque tout est supprimé et créé à nouveau] (http://stackoverflow.com/questions/8804342/windows-filesystem-creation-time-of-a- file-doesnt-change-when-while-is-deleted) –