1. ホーム
  2. c#

[解決済み] File.Createの後にファイルを閉じる[重複]。

2022-02-27 17:50:43

質問

でファイルが存在するかどうか確認しています。

if(!File.Exists(myPath))
{
    File.Create(myPath);
}

しかし StreamReader この新しく作成されたファイルで、次のようなエラーが発生します。

このプロセスは、ファイル '[ここに私のファイルのパス]' を他のプロセスによって使用されているため、アクセスすることができません。

がないんです。 File.Close(myPath) このリソースを解放して、後で自分のプログラムで開くことができるようにするにはどうしたらよいでしょうか。

どのように解決するのですか?

File.Create(string) のインスタンスを返します。 FileStream クラス . を呼び出すことができます。 Stream.Close() メソッドでこのオブジェクトを閉じ、使用しているリソースを解放します。

var myFile = File.Create(myPath);
myFile.Close();

しかし FileStream が実装されています。 IDisposable を利用することができます。 using ステートメント (一般的にこのような状況を扱うのに望ましい方法です)。こうすることで、使い終わったときにストリームが適切に閉じられ、廃棄されることが保証されます。

using (var myFile = File.Create(myPath))
{
   // interact with myFile here, it will be disposed automatically
}