c# - 删除文件夹中除列表中文件名以外的所有内容

标签 c# directory delete-file getfiles

我有一个文件夹和一个列表(其中包含文件名)。 我希望程序删除列出的文件以外的文件。 C#

我希望这是可能的。

现在使用的代码:

它只删除一个文件。

        string folder = Directory.GetCurrentDirectory();
        string thisNOdelete = "example.exe";
        string[] list = Directory.GetFiles(@folder);//
        foreach (string file in list)
        {

            if (file.ToUpper().Contains(thisNOdelete.ToUpper()))
            {
                    //if found this do nothing

            }
            else
            {

               File.Delete(file);
            }
        }

最佳答案

你可以试试,

    public void DeleteFilesExcept(string directory,List<string> excludes)
    {
        var files = System.IO.Directory.GetFiles(directory).Where(x=>!excludes.Contains(System.IO.Path.GetFileName(x)));
        foreach (var file in files)
        {
            System.IO.File.Delete(file);
        }
    }

关于c# - 删除文件夹中除列表中文件名以外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22525668/

相关文章:

c# - RESTful Web 服务自动生成 WADL

C# 创建与处理器一样多的类实例

c# - 使用 Entity Framework 手动将 POCO 映射到现有表

android - 在 ListView 中显示文件列表

c# - WinRT C# ListView 防止拖放到特定位置

java - 奇怪的 isDirectory 行为

c# - 按最深目录对路径列表进行排序

c# - 如何正确打开文件进行删除?

Laravel 8:存储::删除(文件)返回false

windows - 找不到要通过 git bash 删除的文件,但它显示在文件资源管理器中