2012-10-16 51 views
0

我將一些文件添加到應用程序的資源中。 這些文件的「複製到輸出目錄」屬性設置爲「始終複製」,因此這些文件將出現在applicationDirectiry/Resources目錄中。如何獲取應用程序目錄中複製文件的路徑

我想要的是訪問這些文件。當然,我可以使用下面的代碼:

Environment.CurrentDirectory 
+ Path.DirectorySeparatorChar 
+ "Resources\ResourceFileName.xslt"; 

是這裏的問題,如果我想要重命名文件或\資源目錄,我將不得不修改所有的字符串。

編輯:例如我在我的資源中有一個MasterData.xslt文件。在構建之後,它將放置在_ApplicationFolder \ Resources_目錄中。該文件的路徑是ApplicationFolder \ Resources \ MasterData.xslt。在我的代碼可以通過使用

Resources.MasterData 

訪問該文件的內容是否有一種方式來獲得,而不是它的內容的文件路徑(ApplicationFolder \資源\ MasterData.xslt)?

回答

0

如果資源是低於你的應用程序運行時目錄的子目錄,你可以這樣做:

string fileName = 
    System.Reflection.Assembly.GetExecutingAssembly().Location +  
    Path.DirectorySeparatorChar + 
    "Resources" + 
    Path.DirectorySeparatorChar + 
    "ResourceFileName.xslt"; 

還請注意我使用Path.DirectorySeparatorChar兩次而不是「\」。

2

在構建過程中將文件放置在那裏時,該位置應被視爲「神奇」常量。

只需在某處使用const string resFolder = "Resources";,以便您擁有單點定義。

OT:並使用System.IO.Path.Combine()構建文件路徑:

string myPath = Path.Combine(Environment.CurrentDirectory, 
     resFolder, "ResourceFileName.xslt"); 
+0

一個好主意。但我如何獲取文件名? – Andre

+0

不能從問題中回答。它作爲一個常數從天而降。 –

+0

我編輯了我的問題。 – Andre

相關問題