2010-01-11 99 views
1

我想确定某些文件夹的完整路径。在我的数组中,我只拥有这些文件夹的名称,但是当我的应用程序安装在另一个用户的机器上时,我的程序必须能够确定这些文件夹的完整路径。如何确定命名文件夹的完整路径?

如何获取完整路径?

+3

你能描述一下你正在存储的文件夹名称的格式,以及你期望他们相对于什么? – 2010-01-11 13:07:30

回答

4

你的意思是我的文档文件夹和其他人呢?从你的问题来看,这并不明显。

我的文档文件夹是:

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) 

和特殊系统文件夹的其余部分可以以类似的方式进行检索。

4

通过在其他路径前加前缀。哪个路径取决于您的应用程序。

string path = ... 
string fullPath = System.IO.Path.Combine(path, folderNames[i]); 

你可以看看Environment.GetFolderPath(...)

2

FileInfo.FullName,如果你是幸运的,构造就会发现你的文件以某种方式(如当前的工作目录)。

5

你可以检查方法Path.GetFullPath,它可能对你正在尝试做什么有用。

Path.GetFullPath Method

+0

绝对最简单。请注意,它使用*当前路径*,不一定是可执行文件运行的路径(而大多数情况下,它们都是相同的)。 – Abel 2010-01-11 13:17:17

3

听起来对我来说,你的意思实际上是当前路径加上另一条路径。即,假设您的应用程序安装在c:\installations中,并且您需要相对路径resource\en-US,您想要查找c:\installations\resource\en-US

通常我会去获取current path,但在Windows中,可以启动应用程序,就好像它正在从不同的路径执行一样。获取当前的应用程序(在那里安装)的路径的一个很简单的方法如下:

// gets the path of the current executing executable: your program 
string path = Assembly.GetExecutingAssembly().Location; 

// transform it into a real path... 
FileInfo info = new FileInfo(path); 

// ...to make it easier to retrieve the directory part 
string currentPath = info.Directory.FullName; 

现在,它变得微不足道,以获得新的路径。

string someRelativePath = @"reource\en-US"; 
string someFullPath = Path.Combine(currentPath, someRelativePath); 

我知道,这看起来有点做作,但它是安全的,然后使用current path

相关问题