如何搜索具有未知目录的文件并将其删除?

时间:2012-02-18 02:52:09

标签: c# winforms search delete-file

我正在尝试创建一个程序来搜索所有硬盘上的文件,并在找到后将其删除。但我不知道如何开始这样做?

此外,我对C#的某些方面的编码还是比较新的,是否有可能获得如何使用代码的示例?如果是这样会非常有帮助。

4 个答案:

答案 0 :(得分:2)

类似的东西:

FileInfo[] files = Directory.GetFiles("C:\", "file.ext", SearchOption.AllDirectories);    

这不是经过测试的代码,但它应该返回一个FileInfo对象数组,每个文件对应于驱动器C:\上找到的与给定名称匹配的文件。指定SearchOption.AllDirectories可确保搜索所有文件夹到任何深度。

如果您需要搜索多个驱动器,则需要为每个驱动器调用此驱动器,可能是在循环中。

文档在这里:http://msdn.microsoft.com/en-us/library/ms143316.aspx

答案 1 :(得分:2)

您可以使用DriveInfo.GetDrives()来获取所有驱动器。然后在每个驱动器的RootDirectory(或任何其他用于遍历驱动器的Directory方法)上的Directory.GetFiles()。您应该检查每个上的DriveType,并省略任何类似CDROM和有限访问网络驱动器的类型。请注意,这可能需要一些时间,因此您应该向用户提供充分的反馈。

您还应该检查文件属性以确保您具有写访问权限。或者至少捕获File.Delete()可以抛出的任何异常。

答案 2 :(得分:0)

听起来您想在某些文件夹中搜索文件。从the Directory class开始,像Directory.GetDirectories和Directory.GetFiles一样找到你的文件。

答案 3 :(得分:0)

Richard Cox的答案外,如果您想知道如何遍历所有子目录 - 请参阅此处的第二个示例:http://msdn.microsoft.com/en-us/library/system.io.directoryinfo.aspx