C# 文件路径中的问题

C# 文件路径中的问题,c#,winforms,C#,Winforms,在我的项目中有一个文件夹,该文件夹中有一个文本文件。我想读那个文本文件 string FORM_Path = @"C:\Users\...\Desktop\FormData\Login.txt"; bool first = true; string line; try { using (StreamReader streamReader = File.OpenText(FORM_Path))

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

        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();
             }
          }

但我总是得到一个错误-文件不存在。如何解决文本文件路径的问题。

您试图给出相对路径而不是物理路径。如果可以使用asp.net,请使用Server.MapPath

string FORM_Path = Server.MapPath("~/FormData/Login.txt"); 
如果文本文件位于执行文件夹中,则可以使用


如果无法使用某些基本路径,则可以提供完整路径。

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

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

您的路径格式不正确。使用
@.\FormData\Login.txt“
而不是现有的避免使用相对路径。而是考虑使用./p>中的方法。
  • 步骤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");
    

    相对路径无效。你应该给出你想要读取的文件的完整路径。你的文件夹是否与应用程序处于同一级别?是的……我使用硬编码的路径还是同样的问题。我希望“…”实际上被用户配置文件替换,并且你有权访问该用户配置文件(除非它是你自己的)。但我有一个错误,当前上下文中不存在名称服务器,这是一个windows应用程序,但我的上下文中不存在名称应用程序使用System.windows.Forms在代码顶部添加
    ,或者在上面的代码中将
    应用程序
    替换为
    System.windows.Forms.Application
    。Open命令提示并调用dir“您的路径”。你的文件应该打印出来。
    var filePath = Path.Combine(dir , @"FormData\Login.txt");