2013-06-03 109 views
0

我需要從包含在我的解決方案中的文件夾內的文本文件讀取數據(它已添加到解決方案並可從解決方案資源管理器訪問)。我知道如何訪問它像這樣...解決方案中包含的文件的本地路徑

_prefixParts = PopulateFromFile(
    @"C:\Users\Owner\Desktop\AoW\AoW\AoW\Utility\Names\namePrefix.txt"); 

有沒有辦法寫解決方案的本地文件路徑?我已經嘗試了所有我能想到並且沒有設法做到的事情。

此外,如果我要使該文本文件爲嵌入式資源,這是否甚至重要?

回答

2

是的。您可以將其設爲嵌入式資源。或者更好的是,使其成爲資源(.resx)。

要回答你的第一個問題:你可以使用相對路徑來訪問該文件。因此,假定可執行文件位於bin \ Debug文件夾中。這意味着你需要上去兩次,以便你進入項目文件夾的根目錄。

例如,你的文件夾結構是:

  • 解決方案名稱\項目名\ BIN \調試 - >你的位置可執行
  • 解決方案名稱\項目名\ Folder1中\文件夾2 - >位置的您namePrefix.txt

您需要是..\..\Folder1\Folder2\namePrefix.txt

我只想強調,如果您將您的應用程序作爲Windows服務運行,這不起作用。更好的是,使用該文件的資源。

+0

我是否應該將其製作爲.resx的路徑,在部署之後該文件是否可以在另一臺機器上可見?我希望它不被查看或修改。 –

+0

是的。 。你的二進制文件會將resx編譯爲二進制格式。因此它不能被讀取。您可以閱讀[編譯資源到彙編](http://msdn.microsoft.com/en-us/library/7k989cfy(v = vs.80).aspx) – aiapatag

+1

謝謝。我會試着走這條路。 –

0

不,這不是一般的情況下可以得到解決方案/項目中的文件被用來建立可執行文件或庫作爲路徑此信息不會存儲在生成的程序集中(並且代碼可能在完全不同的機器上運行)。

選項:

  • 將文件複製到輸出文件夾(設置「複製到輸出文件夾」爲真該文件),文件將是下一個可執行文件 - 你就可以完整路徑結合基於路徑可執行文件和文件名
  • 嵌入的資源,並從資源
  • 閱讀指定設置

在情況下,如果你只關心該文件作爲命令行參數/配置安博路徑從VS執行而不是使用相對路徑到文件,因爲位置總是相同的。

相關問題