2011-10-06 26 views
0

我有一個問題,我必須得到我的解決方案中包含的xml文件的路徑。任何機構可以如何獲得該文件的路徑?如何獲取我們的解決方案文件夾中包含的文件的路徑?

我曾嘗試是

string path = Directory.GetCurrentDirectory() + "/test.xml"; 

但是,這並沒有給我正確的文件路徑。任何人都可以提供細節來找到路徑嗎?

+0

這是一個網絡應用程序嗎? – adatapost

+0

你能告訴我們它是網頁還是窗口應用程序! – sikender

+0

http://social.msdn.microsoft.com/Forums/en/csharpide/thread/8f27a5f4-cd04-4e76-a9a7-7fed6c1657b8 – CharithJ

回答

0

您需要將文件放在項目的根文件夾中。此外,請嘗試更正斜槓:... + "\\test.xml"

0

如果是在解決方案文件夾,然後它不會在應用程序(取決於構建配置適當的bin文件夾)的當前目錄,除非你確定它是內容類型和被複制到build文件夾

0

如果參數接受一個URI你可以使用這樣的事情

new Uri("/<proejct or assembly name>;component/<folder path>/<filename>") 

比如我proejct foo.bar有一個文件夾中,我有一個名爲資源一個文件說dummy.xml我可以使用

new Uri("/foo.bar;component/resources/dummy.xml") 
0

如果我是你,我會對這個要求持懷疑態度。從概念上講,您的解決方案目錄和解決方案通常是「建築材料」,以及您編制的,可部署的代碼,您完成的「建築」,您將提供給客戶。你在這裏要求的是像一個房子的建設者說:「什麼是最好的方式來鞏固我的錘子到地下室的地板?」有人可能會給你一個很好的答案,但正確地應用解決方案是一個好主意?

爲了更具體地瞭解它,爲什麼您的運行時可執行代碼依賴於您的預構建/構建時間解決方案結構?我建議你實際上可能想要做的是有一個build event,它將XML從解決方案文件夾複製到您的目標可執行文件構建和部署的目標目錄。如果你這樣做,那麼你可以在代碼中使用你的「CurrentDirectory」方法,而不用擔心解決方案的結構。構建事件使用命令行語法併爲您的解決方案目錄提供可用的「宏」,因此您將擁有一個類似於「xcopy $(SolutionDir)test.xml $(BuildDir)」

(我很抱歉如果你已經意識到了這一點,並且你有一些特殊的需求讓代碼遍歷自己的解決方案結構)。

1

嘗試此..

字符串路徑= Application.StartupPath + 「\的test.xml」;

如果你的XML在BIN文件夾中,你可以使用該代碼來獲取你的XML。

相關問題