0
给定一个应用程序“Foo”,它可以安装带或不带清单(位于“程序文件”)在Windows Vista下,也有应用程序安装路径“bar”的子目录:找到另一个应用程序的数据目录
如何从不使用文件和注册表虚拟化的另一个(C#)应用程序找到\ foo \ bar的实际路径。
有没有干净的方式做到这一点?
给定一个应用程序“Foo”,它可以安装带或不带清单(位于“程序文件”)在Windows Vista下,也有应用程序安装路径“bar”的子目录:找到另一个应用程序的数据目录
如何从不使用文件和注册表虚拟化的另一个(C#)应用程序找到\ foo \ bar的实际路径。
有没有干净的方式做到这一点?
在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!
}
}
不是真的;这个想法是你不应该搞乱另一个应用程序的数据。 – 2009-09-28 21:19:27
如果您知道持有“Foo”的程序集的名称,则可以使用Assembly.Location属性查找路径。 – 2009-09-29 18:30:45