2017-03-04 105 views
-2

我想寻找相连接的现有逻辑驱动器中的文件获取路径,但是当我这样做,我结束了一个字符串[],我真的不知道该如何处理。 .. 所以我想在这里做什么,是在“硬盘”驱动器通常的格式FAT32或NTFS ......搜索(请告诉我,如果有经常使用的任何其他人),然后我得到该驱动器的“字母”,并尝试从那里搜索csgo.exe文件。你可以大概判断出休息...C#搜索和文件名

这里是我的代码...

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!"); 
     } 
    } 
} 
+0

您还没有真正指出你的问题是什么。 几个百分点 - 检查你的DriveFormat时做string.Equals而不是“==”。 没有点,如果File.Exists,你知道它确实像你刚才已经从现场搜索给它检查。 您可以检查数组的长度返回,如果它不是空的,你知道你有你需要的文件。 现在,请确实问问题/状态的问题,我们会尽力帮助。 –

回答

0

你的代码是正确的,你最终会在字符串[],因为这是你对这个声明的变量行:

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

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

csgofile|{string[0]} 

如果它变得牛逼他成功地文件,这将是:

csgofile|{string[1]} 

请注意,你只是在寻找的TopDirectoryOnly文件,以便确保该文件确实存在于您的驱动器,你正在寻找。

+0

谢谢!帮了很多 – Dotch

+0

不客气。您也可以接受它作为对其他人的参考。 @Dotch –