2013-12-22 369 views
1

假設我對C#中的格式如下特定的目錄:@ 「C:\布拉布拉\ BLA \ 0.0.1.63 \ blabla.png」動態文件路徑

;

由於軟件更新等原因偶爾會發生「0.0.1.63」更改。

我想知道如何分配「.. \」 - 類似的效果,該特定的目錄是動態的。因爲我不知道更新順序。

那麼,如何讓目錄保持不變,而該目錄的特定部分(0.0.1.63)是一個「未知」目錄。

+0

請說明:1)路徑中的「0.0.1.63」在哪裏? (我沒有看到)2)你有「\」和「/」混合的事實是問題的一部分? 3)分配*「.. \」是什麼意思?順便說一句,我懷疑你所需要的是['System.IO.Path.Combine'](http://msdn.microsoft.com/en-us/library/system.io.path.combine(v = vs。 110)的.aspx)。 – Theraot

+0

「動態」是這裏使用的流行詞。你的意思是你的實際問題是你想在一個已知名稱的目錄中找到一個名字未知的目錄(在本例中爲'0.0.1.63')(在本例中爲'C:\ blabla/bla /')?請參閱['DirectoryInfo.GetDirectories()'](http://msdn.microsoft.com/en-us/library/s7xk2b58(v = vs.110).aspx)並查看是否可以找到與您的首選項相匹配的任何內容。 – CodeCaster

+0

當你得到它時,你打算如何處理這條路? –

回答

0

您可以使用DirectoryInfo.EnumerateDirectoriesDirectoryInfo.EnumerateFileSystemInfos方法來查找您的文件,然後可以從FileInfo對象FullName中剝離文件名並使用結果。像這樣的東西應該工作。

private void button1_Click(object sender, EventArgs e) 
{ 
    openFileDialog1.InitialDirectory = getPath(); 
    openFileDialog1.ShowDialog(); 
} 

private string getPath() 
{ 
    DirectoryInfo di = new DirectoryInfo(@"C:\blabla\bla\"); 
    foreach (var d in di.EnumerateDirectories()) 
    { 
     foreach(var fi in d.EnumerateFileSystemInfos()) 
     { 
      if (fi.Name == "blabla.png") 
      { 
       return fi.FullName.Replace(fi.Name,""); 
      } 
     } 
    } 
    return di.FullName ; 
} 
+0

感謝您的幫助。 – user3126288

+0

不客氣,我很高興能夠有所幫助。 –