如何验证需要传递到硬编码路径以运行File的子文件夹(名称会有所不同)。

时间:2019-07-19 09:03:20

标签: c# filepath

我的要求是我有一个主文件夹,该文件夹下有一组子文件夹。预计这些子文件夹将具有“ FileServer.config”文件。我需要对此进行验证,如果文件丢失,则发出一条消息。

MainFolder->包含子文件夹1,子文件夹02和子文件夹03。

因此,当用户单击时说例如SubFolder01,我不想验证该文件是否存在于该文件夹中

目前在代码中,我一次对所有文件夹进行了代码扫描,并且输出基于第一个文件夹

string path =@ "D:\TEST\PROJ\Repo\";
DirectoryInfo directory = new DirectoryInfo(path);
DirectoryInfo[] subDirectories = directory.GetDirectories();

foreach(DirectoryInfo folder in subDirectories)
{
   string subpath = Path.Combine( @ "D:\TEST\PROJ\Repo\", folder.Name);
   string[] filePaths = Directory.GetFiles(subpath, "fileserver.config");
   if(filePaths.Any())
   Console.WriteLine(subpath);
}

2 个答案:

答案 0 :(得分:0)

这将起作用:

string path = @"D:\TEST\PROJ\Repo\";
DirectoryInfo directory = new DirectoryInfo(path);

foreach (DirectoryInfo folder in directory.GetDirectories())
{
    var files = folder.GetFiles("fileserver.config");

    if (files.Length > 0)
        Console.WriteLine(folder.Name);
}

答案 1 :(得分:0)

您说用户单击子目录(元素),因此我假设您获得了具体的文件夹路径。要验证特定文件夹中是否存在某个文件,请尝试

public bool FileExistsInFolder(string folderPath, string filename)
{
   return Directory.Exists(folderPath) 
          && Directory.GetFiles(folderPath, fileName).Any();
}