所以,我正在尝试创建一个登录表单,但我需要首先读取和写入文件等;我正在创建一个文件然后将'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);
}
答案 0 :(得分:5)
File.Create
会创建一个文件 - 并向其返回一个开放流。把它放在using
块中。 (不要只是关闭它 - 这将是一个错误,因为它不是异常安全的。)
实际上,仔细观察,我发现由于FileMode.OpenOrCreate
,你根本不需要这个。无论如何都会创建该文件。