2009-09-28 82 views
0

給定一個應用程序「Foo」,它可以安裝帶或不帶清單(位於「程序文件」)在Windows Vista下,也有應用程序安裝路徑「bar」的子目錄:找到另一個應用程序的數據目錄

如何從不使用文件和註冊表虛擬化的另一個(C#)應用程序找到\ foo \ bar的實際路徑。

有沒有乾淨的方式做到這一點?

+1

不是真的;這個想法是你不應該搞亂另一個應用程序的數據。 – 2009-09-28 21:19:27

+1

如果您知道持有「Foo」的程序集的名稱,則可以使用Assembly.Location屬性查找路徑。 – 2009-09-29 18:30:45

回答

0

在system.IO中有一個叫Directory.GetDirectories的方法。

你可以使用它遍歷,檢查名稱foo(如果它在根目錄中),然後進入bar。

如果您還需要驅動器名稱,則可以使用DriveInfo.GetDrives。這些應該可以幫助你搜索它。例如:

DriveInfo[] allDrives = DriveInfo.GetDrives(); 

    foreach (DriveInfo d in allDrives) 
    { 
     string[] dirs = Directory.GetDirectories(d.name, "foo\bar"); 
     foreach (string dir in dirs) 
     { 
      //you have your foo bar! 
     } 
    } 
相關問題