C# System.IO.DirectoryNotFoundException: 找不到路径的一部分

C# System.IO.DirectoryNotFoundException: Could not find a part of the path

        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 中形成 .NET 框架,我经常收到相同的消息。我在大学,我在编程方面还很陌生,所以我不知道哪里出了问题。你有什么想法?有什么想法吗?

你的问题有点令人费解。首先,你不应该命名你的变量 directory 因为最后它是一个文件名并按原样使用。

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

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

因此请确保该目录存在,无论是在您的应用程序之外,还是像这样:

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

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

如果您确定路径,请检查您是否运行 VS 作为管理员