2010-01-11 66 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

相關問題