Estoy tratando de encontrar archivos con XML Reader que cumplan algunas condiciones, incluso si la edad del archivo es menor que un número determinado. Recibo un error para CreationTime pero no entiendo cómo superarlo. d1 es la fecha actual y d2 es el rango de fechas para el archivo más joven
El error CS1061 'string' no contiene una definición para 'CreationTime' y no se pudo encontrar ningún método de extensión accesible 'CreationTime' que acepte un primer argumento de tipo 'string' (¿falta una directiva de uso o una referencia de ensamblado?)
public int FileAgeYounger
{
get
{
return FileAgeYounger;
}
set
{
DateTime d1 = DateTime.Now;
d2 = d1.AddDays(FileAgeYounger);
if (subfolders == true & FileExtension != null & Fileprefix != null & FileUseRelativeAgeYounger == true)
{
FolderLocation2 = Directory.GetFiles(FolderLocation, Fileprefix + FileExtension, SearchOption.AllDirectories).Where(f => f.CreationTime >= d2 && f.CreationTime <= d1));
}
}
2 respuestas
Directory.GetFiles
devuelve solo el nombre del archivo. Puedes usar DirectoryInfo
en su lugar.
FileInfo[] fileInfos = new DirectoryInfo(FolderLocation).GetFiles();
IEnumerable<FileInfo> files = fileInfos.Where((f) => f.Extension.Equals(FileExtension)
&& f.Name.StartsWith(Fileprefix)
&& f.CreationTime >= d2
&& f.CreationTime <= d1);
Directory.GetFiles
devuelve la colección de cadenas y en esta colección de cadenas (consulte la documentación de MSDN aquí) está intentando utilizar métodos de archivo (System.IO.File) como CreationTime
y, por lo tanto, el error.
Si desea ordenar en CreationTime, utilice DirectoryInfo.
DirectoryInfo info = new DirectoryInfo(FolderLocation);
FileInfo[] files = info.GetFiles().OrderBy(p => p.CreationTime).ToArray();
Preguntas relacionadas
Nuevas preguntas
c#
C # (pronunciado "see sharp") es un lenguaje de programación multi-paradigma de alto nivel, estáticamente tipado desarrollado por Microsoft. El código C # generalmente se dirige a la familia de herramientas y tiempos de ejecución .NET de Microsoft, que incluyen .NET Framework, .NET Core y Xamarin, entre otros. Use esta etiqueta para preguntas sobre el código escrito en las especificaciones formales de C # o C #.