Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';无法访问文件Username.omg,因为它正被另一个进程使用_C#_Winforms - Fatal编程技术网

C# Can';无法访问文件Username.omg,因为它正被另一个进程使用

C# Can';无法访问文件Username.omg,因为它正被另一个进程使用,c#,winforms,C#,Winforms,有人能帮忙吗?我不断收到另一个进程使用的错误文件 以下是我目前的代码: string username = textBox1.Text; string password = textBox2.Text; string SecurityCode = textBox3.Text; if(!Directory.Exists(path + "\\Login")) Directory.CreateDirectory(path + "\\Login"); if (!File.Exists(pat

有人能帮忙吗?我不断收到另一个进程使用的错误文件

以下是我目前的代码:

string username = textBox1.Text;
string password = textBox2.Text;
string SecurityCode = textBox3.Text;
if(!Directory.Exists(path + "\\Login"))
      Directory.CreateDirectory(path + "\\Login");
if (!File.Exists(path + "\\Login\\Username.omg" + "\\Login\\Password.omg" + "\\Login\\SecurityCode.omg"))
    File.Create(path + "\\Login\\Username.omg");
    File.Create(path + "\\Login\\Password.omg");
    File.Create(path + "\\Login\\SecurityCode.omg");

    File.AppendAllText(path + "\\Login\\Username.omg", username);
    File.AppendAllText(path + "\\Login\\Password.omg", password);
    File.AppendAllText(path + "\\Login\\SecurityCode.omg", SecurityCode);
    MessageBox.Show("User Created: Welcome: " + username);
}
返回在尝试访问刚创建的文件之前需要关闭的流

    using(File.Create(path + "\\Login\\Username.omg"))
        ;
    using(File.Create(path + "\\Login\\Password.omg"))
        ;
    using(File.Create(path + "\\Login\\SecurityCode.omg"))
        ;
围绕File.Create调用的简单using语句有助于关闭和处理返回的流

但是,正如上面的评论所述,通过对File.WriteAllText()的简单调用,您的简单场景可能会更好

如果文件不存在,则创建该文件;如果文件存在,则覆盖其内容。相反,在您的代码中,您将信息一次又一次地附加到相同的文件中。 我不确定这是否真的是你想要的

顺便说一下,您对File.Exists的调用是错误的。您应该分别测试每个文件

string userNameFile = Path.Combine(path, @"login\username.omg");
if (!File.Exists(userNameFile)
{
    using(File.Create(userNameFile))
       ;
}

删除File.Create()调用。请改用File.writealText()。感谢您的快速回复,非常感谢:)请标记正确答案。它可以帮助别人。
string userNameFile = Path.Combine(path, @"login\username.omg");
if (!File.Exists(userNameFile)
{
    using(File.Create(userNameFile))
       ;
}