2011-06-24 84 views
4

我在vs2010項目中添加了一大堆圖片的文件夾。 我想通過代碼引用此文件夾。 由於最終編可能被部署到不同的位置絕對路徑不會這樣做!visual studio 2010如何引用項目內的文件夾?

獲取文件夾相對路徑的標準方法是什麼?

我對此很新,很抱歉,如果我問的東西太明顯了! 謝謝。

回答

2

您可能想要將圖像添加到資源文件,因此您將能夠直接處理圖像而無需編寫代碼來查找文件。

無論如何,你可以獲取應用程序路徑:

string appFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase); 

然後你可以使用的方法從Path類,像Path.Combine來引用文件夾。

+0

的一點是,應用程序的用戶必須能夠新圖片手動添加到「圖片」文件夾中的應用程序文件夾內。 –

+0

'.CodeBase'返回的字符串以'「file:\」'開頭,這是不可取的。您應該使用'.Location',而不是純路徑名。 –

0

如果這些圖像是相對於你的可執行文件,然後你可以使用的argv [0]主()(如果它的命令行),甚至更好的遵循什麼MSDN是advicing:

按照慣例,argv [0]是調用該程序的命令 。 然而,也可以使用產卵和的CreateProcess如果 同時使用所述第一和第二 參數(lpApplicationName和 lpCommandLine)一個 過程,argv的[0]可以不是 可執行文件的名稱;使用GetModuleFileName 檢索可執行文件名稱,並使用 其完全限定的路徑。

+0

我正在WPP應用程序... –

+0

我想你仍然可以訪問這些信息,但從.NET(我不確定現在怎麼 - 但任何給你的命令行參數,將接近函數給你的進程名稱)...其實它已被張貼在下面 - 只是看到它 - 「AI W」的帖子。 – malkia

1

資源是一個好主意。另一種方法是在安裝應用程序時將應用程序的安裝文件夾位置寫入註冊表。 OR這樣做

string dir = System.IO.Path.GetDirectoryName(Application.ExecutablePath); 
+0

這聽起來像一個好主意,但我正在使用wpf的vb.net,並且ExecutablePath不存在於應用程序中 –

相關問題