2012-03-31 37 views
0

好了,所以我有以下代碼:閱讀數從文本

string numbers = File.ReadAllText("numbers.txt"); 
      StringSplitOptions.RemoveEmptyEntries); 
      List<string> List = new List<string>(); 
      List.AddRange(allNumbers); 

      return List; 

目前numbers.txt文件是在我的機器上的一個目錄,但我想要的文本文件集成到我的解決方案文件,如數字/ numbers.txt。我如何從讀取文件而不是從默認文件中讀取VS2010喜歡讀取的文件?我的解決方案中已經有一個名爲數字的文件,其中包含相應的文件。

回答

2

事情是這樣的:

string outputDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); 
string fileName = Path.Combine(outputDirectory, "numbers.txt"); 
string numbers = File.ReadAllText(fileName); 

確保您設置「複製到輸出目錄」屬性設置爲「複製,如果新」在您的項目有問題的文件。

+0

它說'在當前的情況下,Assemly不存在'。我錯過了一個可能的參考?這也是一個Web應用程序,不是標準的控制檯應用程序。我不確定這是否重要。 – 2012-03-31 20:49:50

+1

爲控制檯應用程序添加'使用System.Reflection'。對於網絡應用程序是的,它確實很重要 - 您必須根據Url在文件系統上選擇一個路徑 - 結帳「Server.MapPath」。我添加了ASP.NET標籤到你的問題 – BrokenGlass 2012-03-31 20:51:18

+0

是的,剛剛得到它。通過解決這個問題就像一個正常的人會haha – 2012-03-31 20:55:29

0

篡奪BrokenGlass的代碼一點點,你也可以做到這一點

string fileName = Server.MapPath("numbers/numbers.txt"); 
string numbers = File.ReadAllText(fileName); 

Server.MapPath您網站上的相對路徑轉換爲主機計算機上的文件路徑。