1. ホーム
  2. c#

[解決済み] File.Createの後にファイルをクローズする [duplicate]

2023-02-17 02:10:42

質問

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

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
}