2017-03-04 92 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 –