删除除列表中的文件和目录外的所有文件和目录
本文关键字:文件 列表 删除 | 更新日期: 2023-09-27 18:29:26
我手头有两项任务
- 从文件夹中获取10个最新文件,比如
C:'Temp
和 - 删除任何其他文件夹和文件
我使用下面的代码得到了第一个项目,感谢我们在Stack Overflow中的朋友。
var imgFiles = (from f in directory.GetFiles(fileType,SearchOption.AllDirectories)
orderby f.LastWriteTime descending
select f).Take(numberOfFilesToFetch).ToArray();
我需要一些关于2点的帮助。一些示例C#代码将非常有用。
如果你只需要删除文件,我建议你只得到要删除的文件的列表,所以你可以使用Skip而不是Take
其他人正在使用Except调用再次调用GetFiles,如果您不需要在删除过程中忽略文件列表,则该调用不是很有效
var filesToBeDeleted = (from f in Directory.GetFiles(fileType,SearchOption.AllDirectories)
orderby f.LastWriteTime descending
select f).Skip(numberOfFilesToFetch).ToArray();
foreach (var file in filesToBeDeleted)
{
file.Delete();
}
string [] subdirectoryEntries = Directory.GetDirectories("c:''temp");
foreach(string dir in subdirectoryEntries)
{
Directory.Delete(dir) ;
}
我建议您为删除操作
foreach (var file in directory.GetFiles().Except(imgFiles))
{
file.Delete();
}
var filesToBeDeleted = directory.GetFiles(fileType, SearchOption.AllDirectories)
.Except(imgFiles).ToArray();
for (int i = filesToBeDeleted.Length; i >= 0; i--)
filesToBeDeleted[i].Delete();