【问题标题】:c# Search and get path from Filenamec# 从文件名中搜索并获取路径
【发布时间】:2017-07-24 18:07:19
【问题描述】:

我想在连接的现有逻辑驱动器中查找一个文件,但是当我这样做时,我最终得到一个字符串 [],我真的不知道如何处理...... 所以我在这里要做的是在通常具有FAT32或NTFS格式的“硬盘”驱动器中搜索......(请告诉我是否还有其他经常使用的)然后,我得到了“信" 用于该驱动器,并尝试从那里搜索 csgo.exe 文件。剩下的你大概能猜出来……

这是我的代码...

if (d.DriveFormat.ToString() == "FAT32" || d.DriveFormat.ToString() == "NTFS")
{
    string StartDir = d.RootDirectory.ToString();
    String[] csgofile = Directory.GetFiles(StartDir, "csgo.exe", SearchOption.TopDirectoryOnly);
    foreach (String file in csgofile)
    {
        if (File.Exists(file))
        {
            MessageBox.Show("Drive: " + StartDir + ", CS:GO Path: " + file, "Path Found!");
        }
    }
}

【问题讨论】:

  • 你还没有真正说明你的问题是什么。几点 - 检查您的 DriveFormat 时执行 string.Equals 而不是 '=='。没有必要检查 File.Exists 是否存在,您知道它确实如此,就像您刚刚从实时搜索中获得它一样。您可以检查返回的数组的长度,如果它不为空,您就知道您有所需的文件。现在,请确实提出问题/说明问题,我们会尽力提供帮助。

标签: c# file path


【解决方案1】:

你的代码是正确的,你最终会出现在 string[] 上,因为那是你在这一行声明的变量:

String[] csgofile = Directory.GetFiles(StartDir, "test.txt", SearchOption.TopDirectoryOnly);

如果文件不存在,你调试它,它看起来像

csgofile|{string[0]}

如果获取文件成功,则为:

csgofile|{string[1]}

请注意,您只是在 TopDirectoryOnly 上搜索文件,因此请确保该文件确实存在于您正在搜索的驱动器中。

【讨论】:

  • 谢谢!帮了大忙
  • 不客气。您也可以接受它作为参考其他人的答案。 @Dotch
猜你喜欢
  • 2012-12-23
  • 2011-11-16
  • 2018-04-24
  • 2012-01-21
  • 2012-10-25
  • 1970-01-01
  • 2023-03-26
  • 2019-09-01
相关资源
最近更新 更多