我试图从文件中读取一些文字
public void loadFromFile(string adress)
{
//int preventReadingEntireFile = 0;
try
{
using (StreamReader sr = new StreamReader(adress))
{
//preventReadingEntireFile++;
String line = sr.ReadToEnd();
Console.WriteLine(preventReadingEntireFile + ": " + line);
/*
* TODO: dodawanie słów do bazy
*/
}
}
catch (Exception e)
{
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
}
但我不知道如何访问此文件(路径是什么)。我把它放在我项目解决方案中的一个folers中。当我使用" /TxtFiles/odm.txt"它在" C:\ TxtFiles \ odm.txt"中搜索此文件; (这是错误的,没有那样的文件)。
有可能吗?我是否必须以某种方式制作此文件"可见"我的剧本?
这是ASP.net mvc 5项目。
答案 0 :(得分:3)
您必须使用Server.MapPath()
,它将从相对url生成文件的绝对路径,如果 TxtFiles 目录位于Application的根目录中,则以下代码将起作用:< / p>
StreamReader Sr = new StreamReader(Server.MapPath("~/TxtFiles/odm.txt"));
对你而言:
string adress = "~/TxtFiles/odm.txt";
StreamReader Sr = new StreamReader(Server.MapPath(adress));
答案 1 :(得分:0)
看起来你在Windows上?许多编程语言(或者更确切地说,它们的文件处理库)解释了一个起始斜杠&#39; /&#39; Unix风格,&#34;从文件系统的根开始&#34;,在你的情况下,C:。尝试用#34; ./ TxtFiles / odm.txt&#34;,用一个初始点 - 这通常被解释为&#34;从当前目录&#34;开始。
另一种选择是使用完整路径,&#34; C:\ MyProjects \ CurrentProject \ TxtFiles \ odm.txt&#34;。