2009-09-28 52 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! 
     } 
    } 
相关问题