2

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

FileIO.FileCheck("Usernames.pheonix");
FileIO.WriteFile("Usernames.pheonix", "test");

它给我带来了一个错误;

该进程无法访问文件“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);
}
4

1 回答 1

5

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

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

于 2013-03-15T21:33:48.920 回答