文件路径中的问题

时间:2013-11-27 06:18:15

标签: c# winforms

在我的项目中有一个文件夹,在该文件夹中有文本文件。我想阅读那个文本文件

        string FORM_Path = @"C:\Users\...\Desktop\FormData\Login.txt";
        bool first = true;
        string line;
        try
        {
            using (StreamReader streamReader = File.OpenText(FORM_Path))
            {
                line = streamReader.ReadLine();
             }
          }

但我总是收到错误 - 文件不存在。我怎样才能解决文本文件路径中的问题。

4 个答案:

答案 0 :(得分:1)

确保将文件的属性设置为将文件复制到输出目录。然后,您可以使用以下行获取文本文件的完整路径:

string FilePath = System.IO.Path.Combine(Application.StartupPath, "FormData\Login.txt");

答案 1 :(得分:0)

您正在尝试提供相对路径而不是物理路径。如果你可以使用asp.net使用Server.MapPath

string FORM_Path = Server.MapPath("~/FormData/Login.txt"); 

如果文本文件在执行文件夹中,那么您可以使用AppDomain.BaseDirectory

string FORM_Path = AppDomain.CurrentDomain.BaseDirectory + "FormData\\Login.txt";

如果无法使用某个基本路径,那么您可以提供完整的路径。

答案 2 :(得分:0)

您的路径格式不正确。使用@".\FormData\Login.txt"而不是您拥有的

答案 3 :(得分:0)

避免使用相对路径。而是考虑使用Path class中的方法。

  1. Path.Combine
  2. Path.GetDirectoryName
  3. 第1步:获取可执行文件的绝对路径

    var path = (new System.Uri(Assembly.GetEntryAssembly().CodeBase)).AbsolutePath;
    

    第2步:获取工作目录

    var dir = Path.GetDirectoryName(path);
    

    第3步:构建新路径

    var filePath = Path.Combine(dir , @"FormData\Login.txt");