C# の File.Create() を使用したファイルの競合の解決
別のプロセスがターゲット ファイルにすでにアクセスしている場合、C# でファイルを作成および書き込みすると、エラーが発生する可能性があります。 これは、File.Exists()
でファイルを作成する前に、File.Create()
を使用して既存のファイルを確認する場合でもよく発生します。 後続の書き込み操作 (File.AppendText()
など) は例外をスローします。
一般的な解決策には、次のように書き込む前に、FileStream
によって作成された File.Create()
を閉じることが含まれます。
<code class="language-csharp">File.Create(filePath).Close(); File.WriteAllText(filePath, FileText); // Corrected to use filePath</code>
これは機能しますが、理想的ではありません。 より効率的で堅牢な方法は、File.WriteAllText()
を直接使用することです。これにより、ファイルの作成と上書きが内部的に処理されます。
<code class="language-csharp">File.WriteAllText(filePath, FileText);</code>
このアプローチにより、明示的なファイルの作成と閉じる必要がなくなり、パフォーマンスが向上し、コードが簡素化されます。 File.WriteAllText()
はファイルが存在しない場合は作成し、存在する場合は上書きします。 これは通常、C# でファイルにテキストを書き込む場合に推奨される方法です。
以上がC# でファイルを作成および書き込むときにファイルの衝突を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。