创建后写入文件时正在使用该文件

iwa*_*ery 2 c# file

所以,我正在尝试创建一个登录表单,但我需要首先读取和写入文件等; 我正在创建一个文件然后将'test'写入文件,但如果我然后删除该文件并尝试同时发出我的命令:

FileIO.FileCheck("Usernames.pheonix");
FileIO.WriteFile("Usernames.pheonix", "test");
Run Code Online (Sandbox Code Playgroud)

它给我一个错误;

该进程无法访问文件'C:\ Users\XXX\Desktop\Pheonix Launcher\Pheonix\bin\Debug\Usernames.pheonix',因为它正由另一个进程使用.

我似乎无法让我知道它为什么继续这样做,这是我的读/写文件:

public static void createFile(String FileName)
{
    File.Create(FileName);
}

public static void WriteFile(String File ,String Message)
{
    FileStream fs1 = new FileStream(File, FileMode.OpenOrCreate, FileAccess.Write);
    StreamWriter writer = new StreamWriter(fs1);
    writer.Write(Message);
    writer.Close();
}

public static void FileCheck(String fileName)
{
    if (File.Exists(fileName))
        Console.WriteLine("File exists.");
    else
        createFile(fileName);
}
Run Code Online (Sandbox Code Playgroud)

usr*_*usr 5

File.Create确实创建了一个文件 - 并向其返回一个开放流.把它放在一个using街区.(不要只是在它上面调用 - 这将是一个错误,因为它不是异常安全的).

实际上,仔细观察,我发现你根本不需要这个FileMode.OpenOrCreate.无论如何都会创建该文件.