dir.GetFiles()是string[],无法显式转换为FileINfo[]
时间: 2024-10-18 18:03:55 浏览: 12
DirectInfo.GetFiles返回数组的默认排序示例
`Directory.GetFiles()`方法返回的是一个字符串数组,这些字符串包含了文件路径,而不是`FileInfo`对象。如果你想将它们转换成`FileInfo`数组以便进一步操作,可以逐个解析这些字符串,创建对应的`FileInfo`实例。以下是修改后的代码片段:
```csharp
string directoryPath = @"C:\YourFolderPath\";
DateTime twoYearsAgo = DateTime.UtcNow.AddYears(-2);
string[] filePaths = Directory.GetFiles(directoryPath);
List<FileInfo> fileInfos = new List<FileInfo>();
foreach (string filePath in filePaths)
{
FileInfo fileInfo = new FileInfo(filePath);
if (fileInfo.LastWriteTimeUtc <= twoYearsAgo)
{
fileInfos.Add(fileInfo);
// 删除操作或处理其他逻辑...
}
}
// 现在你可以遍历fileInfos列表进行删除或进一步的操作
foreach (FileInfo info in fileInfos)
{
info.Delete();
Console.WriteLine($"Deleted file: {info.FullName}");
}
```
在这个版本中,我们创建了一个`FileInfo`对象集合`fileInfos`,通过循环遍历`filePaths`数组并将每个文件路径转换为`FileInfo`。这样就可以对`FileInfo`对象直接进行操作,如删除或访问其属性了。
阅读全文