2009-07-13 11 views

Respuesta

10

Uso:

System.IO.File.GetCreationTime(filename); 

para obtener la hora de creación del archivo, consulte GetCreationTime para obtener más detalles y ejemplos.

A continuación, puede hacer algo como:

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

La comparación no debería tener .AddHours(): esto devolverá verdadero para todos los archivos no creados en el futuro. – iisystems

11

Algo como esto ...

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

se combinan las últimas 2 líneas en algo así como

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

+0

Gracias, editado, me gusta mucho mejor. –

2

Uso FileInfo clase y la propiedad CreationTime.

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

Puede utilizar File.GetCreationTime y compare con la hora actual:

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

Me gusta que esto potencialmente evite la creación de un objeto FileInfo completo solo para leer una sola propiedad. –

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