C#检测无关文件

时间:2015-07-10 12:23:42

标签: c# file detect

我的文件夹包含以下文件:

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

现在我需要搜索无关的文件,但是如何?谢谢。

2 个答案:

答案 0 :(得分:2)

使用Directory.GetFiles: StdCallFunctionMapper

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

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

答案 1 :(得分:0)

这将是我使用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);