Я хочу удалить файлы с заданным расширением

Я хочу разработать приложение на C#, которое позволит пользователям указать расширение (пример: *.mp3), а затем приложение удалит все файлы, содержащие это расширение, с жесткого диска.

3 ответа

Решение

Это просто пример удаления файлов с расширением.msi на диске C,

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;
}

Поместите нужный путь в код ниже и используйте foreach и File.Delete.

использование

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

Ты можешь использовать 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}
}
Другие вопросы по тегам