2009-07-13 7 views

Répondre

10

Utilisation:

System.IO.File.GetCreationTime(filename); 

Pour obtenir le temps de création du fichier, voir GetCreationTime pour plus détails et exemples.

Ensuite, vous pouvez faire quelque chose comme:

public bool IsBelowThreshold(string filename, int hours) 
{ 
    var threshold = DateTime.Now.AddHours(-hours); 
    return System.IO.File.GetCreationTime(filename) <= threshold; 
} 
+0

La comparaison ne devrait pas avoir .AddHours() - ceci retournera vrai pour tous les dossiers non créés dans le futur. – iisystems

11

Quelque chose comme ça ...

 FileInfo fileInfo = new FileInfo(@"C:\MyFile.txt")); 
     bool myCheck = fileinfo.CreationTime > DateTime.Now.AddHours(-23); 
+2

Vous combinez les 2 dernières lignes en quelque chose comme

 bool myCheck = fileinfo.CreationTime > DateTime.Now.AddHours(-23); 

+0

Merci, sous la direction, je l'aime beaucoup mieux. –

2

classe Utilisez FileInfo et la propriété CreationTime.

FileInfo fi = new FileInfo(@"C:\myfile.txt"); 
bool check = (DateTime.Now - fi.CreationTime).TotalHours < 23; 
5

Vous pouvez utiliser File.GetCreationTime et comparer à l'heure actuelle:

private static bool IsFileOlder(string fileName, TimeSpan thresholdAge) 
{ 
    return (DateTime.Now - File.GetCreationTime(fileName)) > thresholdAge; 
} 

// used like so: 
// check if file is older than 23 hours 
bool oldEnough = IsFileOlder(@"C:\path\file.ext", new TimeSpan(0, 23, 0, 0)); 
// check if file is older than 23 milliseconds 
bool oldEnough = IsFileOlder(@"C:\path\file.ext", new TimeSpan(0, 0, 0, 0, 23)); 
+0

J'aime que cela évite potentiellement la création d'un objet FileInfo entier juste pour lire une seule propriété. –

1
FileInfo fi = new FileInfo("c:\\file.txt"); 
    if (fi.CreationTime.AddHours(23) >= DateTime.Now) 
    { 
     //created within the last 23 hours 
    } 
Questions connexes