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

时间:2013-03-15 21:32:39

标签: c# file

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

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);
}

1 个答案:

答案 0 :(得分:5)

File.Create会创建一个文件 - 并向其返回一个开放流。把它放在using块中。 (不要只是关闭它 - 这将是一个错误,因为它不是异常安全的。)

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