访问解决方案中的txt文件

本文关键字:txt 文件 解决方案 访问 | 更新日期: 2024-10-19 14:05:58

我正在尝试从文件中读取一些文本

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

访问解决方案中的txt文件

您必须使用Server.MapPath(),它将从相对url生成文件的绝对路径,如果TxtFiles目录位于Application:的根目录中,则以下代码将起作用

StreamReader Sr = new StreamReader(Server.MapPath("~/TxtFiles/odm.txt"));

对于您的情况:

string adress = "~/TxtFiles/odm.txt";
StreamReader Sr = new StreamReader(Server.MapPath(adress));

看起来你在Windows上?许多编程语言(或者更确切地说,它们的文件处理库)将起始斜杠'/'Unix样式解释为"从文件系统的根开始",在您的情况下,是C:。试着做"./TxtFiles/odm.txt",用一个初始点-这通常被解释为"从当前目录开始"。

另一种选择是只使用完整路径,"C:''MyProjects''CurrentProject''TxtFiles''odm.txt"。