访问解决方案中的txt文件

时间:2015-03-06 17:22:58

标签: c# asp.net-mvc

我试图从文件中读取一些文字

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项目。

2 个答案:

答案 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;。