c#检测无关文件

本文关键字:文件 检测 | 更新日期: 2023-09-27 18:02:08

我有文件夹这些文件:

  • image1.png
  • image2.png
  • image3.png
  • image4.png
  • image5.png

我需要检查是否存在多余的文件在这个文件夹中,例如,如果我创建example.file.css我需要给出一个错误,必须只有上面列出的文件。所以我已经创建了所需的文件字符串:

string[] only_these_files = { 
    "image1.png", 
    "image2.png", 
    "image3.png",
    "image4.png",
    "image5.png"
};

现在我需要搜索无关的文件,但是怎么做呢?谢谢。

c#检测无关文件

使用目录。getfile:https://msdn.microsoft.com/en-us/library/07wt70x2 (v = vs.110) . aspx

并与您的允许文件列表进行比较。

    string[] only_these_files = { 
        "image1.png", 
        "image2.png", 
        "image3.png",
        "image4.png",
        "image5.png"
    };
    string[] fileEntries = Directory.GetFiles(targetDirectory);
    List<String> badFiles = new List<string>();
    foreach (string fileName in fileEntries)
        if (!only_these_files.Contains(fileName))
        {
            badFiles.Add(fileName);
        }

这将是我使用lil' LINQ的实现

        var onlyAllowedFiles = new List<string>
        { 
            "image1.png", 
            "image2.png", 
            "image3.png",
            "image4.png",
            "image5.png"
        };
        var path = "";
        var files = Directory.GetFiles(path);
        var nonAllowedFiles = files.Where(f => onlyAllowedFiles.Contains(f) == false);

或者,如果您希望只检测非法文件的存在。

        var errorState = files.Any(f => onlyAllowedFiles.Contains(f) == false);