我正在尝试创建一个程序来搜索所有硬盘上的文件,并在找到后将其删除。但我不知道如何开始这样做?
此外,我对C#的某些方面的编码还是比较新的,是否有可能获得如何使用代码的示例?如果是这样会非常有帮助。
答案 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