我想删除具有给定扩展名的文件

时间:2014-03-03 12:29:49

标签: c# dll system

我想开发一个允许用户提供扩展的C#应用​​程序(例如:* .mp3)然后应用程序将从硬盘中删除包含此扩展名的所有文件。

3 个答案:

答案 0 :(得分:2)

这只是在C盘中删除扩展名为.msi的文件的一个例子,

DirectoryInfo Dr = new DirectoryInfo(@"C:\");
FileInfo[] files = Dr.GetFiles("*.msi").Where(p => p.Extension == ".msi").ToArray();
foreach (FileInfo file in files)
    try
    {
        file.Attributes = FileAttributes.Normal;
        File.Delete(file.FullName);
    }
    catch 
    {
    }

要获得所有扩展程序,

public List<FileInfo> GetFiles(string path, params string[] extensions)
{
    List<FileInfo> list = new List<FileInfo>();
    foreach (string ext in extensions)
        list.AddRange(new DirectoryInfo(path).GetFiles("*" + ext).Where(p =>
              p.Extension.Equals(ext,StringComparison.CurrentCultureIgnoreCase))
              .ToArray());
    return list;
}

答案 1 :(得分:1)

在下面的代码中放置所需的路径并使用foreach和File.Delete。

使用

var files = System.IO.Directory.GetFiles(path, "*.txt");

答案 2 :(得分:0)

您可以使用Directory.EnumerateFiles(string path, string searchPattern, SearchOption searchOption)

var files = Directory.EnumerateFiles(directoryPath, "*.mp3", SearchOption.AllDirectories);
foreach (var item in files)
{
   try
   {
       File.Delete(item);
   }
   catch (Exception)
   { //log exception}
}