2

それで、ログインフォームを作成しようとしていますが、まずファイルなどに読み書きする必要があります。ファイルを作成してから「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);
}
4

1 に答える 1

5

File.Createファイルを作成し、開いているストリームをそれに返します。ブロックに入れusingます。(単に close を呼び出さないでください。例外セーフではないため、これはバグです)。

実際、よく見ると、 のため、これはまったく必要ないことがわかりますFileMode.OpenOrCreate。ファイルはとにかく作成されます。

于 2013-03-15T21:33:48.920 に答える