2012-03-31 38 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您网站上的相对路径转换为主机计算机上的文件路径。