【问题标题】:Check if a folder doesn't exist in c# using FileSystemInfo [duplicate]使用 FileSystemInfo 检查 c# 中是否不存在文件夹 [重复]
【发布时间】:2020-06-09 18:39:19
【问题描述】:

我是c#新手,我正在尝试查找可以包含字符串的文件夹,例如:

姓名:92011

所以文件夹可以是:

  • 杰森莫霍亚 92011
  • 92011
  • 92011_newOne

等等……

我正在使用此代码进行操作,并且工作正常:

string ped = datagridview1.SelectedCells[0].Value.ToString();
string path = @"C:\";
DirectoryInfo hdDirectoryInWhichToSearch = new DirectoryInfo(path);
FileSystemInfo[] filesAndDirs = hdDirectoryInWhichToSearch.GetFileSystemInfos("*" + ped + "*");
string fullName = "";
foreach (FileSystemInfo foundFile in filesAndDirs)
{
    fullName = foundFile.FullName + @"\";
    Process.Start(fullName);
}

问题是,如果 FileSystemInfo 找到一个文件夹,它会打开它,但如果它找不到它,它什么也不做,我想说,例如,一条带有“文件夹不存在”的消息”。

如何检查是否在此 foreach 中找不到文件夹?

【问题讨论】:

  • var noneFound = filesAndDirs.Length == 0

标签: c#


【解决方案1】:

由于filesAndDirs是一个数组,你可以使用它的Length属性来判断它是否为空。

foreach (FileSystemInfo foundFile in filesAndDirs)
{
    fullName = foundFile.FullName + @"\";
    Process.Start(fullName);
}
if (filesAndDirs.Length == 0)
{
    // Nothing was found
}

【讨论】:

    【解决方案2】:

    你可以使用System.Linq:

    bool foundAny = filesAndDirs.Any(); 
    foreach (FileSystemInfo foundFile in filesAndDirs)
    {
        fullName = foundFile.FullName + @"\";
        Process.Start(fullName);
    }
    

    【讨论】:

      猜你喜欢
      • 2015-11-06
      • 2018-12-26
      • 1970-01-01
      • 1970-01-01
      • 2019-03-26
      • 2011-10-04
      • 1970-01-01
      • 2011-03-25
      相关资源
      最近更新 更多