我想确定某些文件夹的完整路径。在我的数组中,我只拥有这些文件夹的名称,但是当我的应用程序安装在另一个用户的机器上时,我的程序必须能够确定这些文件夹的完整路径。如何确定命名文件夹的完整路径?
如何获取完整路径?
我想确定某些文件夹的完整路径。在我的数组中,我只拥有这些文件夹的名称,但是当我的应用程序安装在另一个用户的机器上时,我的程序必须能够确定这些文件夹的完整路径。如何确定命名文件夹的完整路径?
如何获取完整路径?
你的意思是我的文档文件夹和其他人呢?从你的问题来看,这并不明显。
我的文档文件夹是:
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
和特殊系统文件夹的其余部分可以以类似的方式进行检索。
通过在其他路径前加前缀。哪个路径取决于您的应用程序。
string path = ...
string fullPath = System.IO.Path.Combine(path, folderNames[i]);
你可以看看Environment.GetFolderPath(...)
FileInfo.FullName,如果你是幸运的,构造就会发现你的文件以某种方式(如当前的工作目录)。
你可以检查方法Path.GetFullPath
,它可能对你正在尝试做什么有用。
绝对最简单。请注意,它使用*当前路径*,不一定是可执行文件运行的路径(而大多数情况下,它们都是相同的)。 – Abel 2010-01-11 13:17:17
听起来对我来说,你的意思实际上是当前路径加上另一条路径。即,假设您的应用程序安装在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。
你能描述一下你正在存储的文件夹名称的格式,以及你期望他们相对于什么? – 2010-01-11 13:07:30