【问题标题】:C# System.IO.DirectoryNotFoundException: Could not find a part of the pathC# System.IO.DirectoryNotFoundException:找不到路径的一部分
【发布时间】:2022-01-02 02:42:55
【问题描述】:
        try
        {
             string directory = @"D:/user/user.txt";
             FileStream FS = new FileStream(directory, FileMode.Append);
             StreamWriter SW = new StreamWriter(FS);
             string register;
             register = $"{generateID()};{txtfirstName.Text};{txtLastName.Text};{txtUser.Text};{txtEmail.Text};{txtPersonalID.Text}";
             SW.WriteLine(register);
             SW.Close();
             FS.Close();
        }
        catch (Exception ex)
        {
             MessageBox.Show(ex.ToString());
        }

我在 c# windows forms .NET 框架中运行此代码,并且始终收到相同的消息。我在大学,我在编程方面还很陌生,所以我不知道可能出了什么问题。你有什么想法?有什么想法吗?

enter image description here

【问题讨论】:

  • D:.\user ??你是说D:\user 吗?
  • 图片(请将其直接嵌入到问题中)和您的代码似乎不一致。在图像中,“目录”是“D:\user\user.txt”,在您的代码中是“D:.\user\user.txt”。代码中的路径只是无效路径,图像中的路径可能(简单地)不存在(并且看起来不像目录名,而是完整路径“目录+文件名”)。
  • 我看到了你的消息,我就像,天哪,我太笨了,但不,错误还在继续。是的,我指的是 D:\user。顺便说一句,它不是根目录
  • append 方法如果不存在则创建一个新文件,如果已经创建一个则追加它
  • 你有那个目录的权限吗?尝试以管理员身份运行 VS Studio。

标签: c# visual-studio windows-forms-designer .net-framework-4.8


【解决方案1】:

您的问题有点令人困惑。首先,你不应该将你的变量命名为directory,因为最后它是一个文件名,并且被这样使用。

(我将忽略图像“D:\user\user.txt”和代码“D.:\user\user.txt”之间的区别,并假设您确实使用了第一个)。

很可能,D:\User 目录不存在,FileStream 类不会为您创建它。它将简单地假设所有(子)目录直到指定的文件名都存在,否则失败。

因此,请确保该目录存在于您的应用程序之外,或者类似这样:

string fileName = @"D:\user\user.txt";
string directory = Path.GetDirectoryName(fileName);
if (!Directory.Exists(directory))
{
   Directory.CreateDirectory(directory);
}
FileStream FS = new FileStream(fileName, FileMode.Append);

// ... rest of code

【讨论】:

    【解决方案2】:

    您正在 Windows 机器上运行该应用程序。在windows中,文件路径需要像
    字符串目录 = @"D:\user\user.txt";
    此外,请确保此文件路径存在并且您正在运行的应用程序有权写入此文件。 如果您正在运行测试应用程序,则将权限作为 FullControl 授予所有人。如下

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-30
      • 2018-06-28
      • 1970-01-01
      相关资源
      最近更新 更多