.NET DataSetsとXMLを使用してデータベースからデータをエクスポートおよびインポートするための小さなアプリケーションを作成しており、その一部として次のことを行っています。StreamWriter、FileStream、windowsファイルのロック
StreamWriter sw = new StreamWriter(file);
sw.Write(xml.OuterXml);
sw.Close();
問題は近い方法がFileStreamを(コンストラクタに渡されたファイルのパラメータ)を閉じますが、ファイルのロックを解除しないことです。このファイルは私が作成したプログラムが作成するファイルなので、他のものはロックしていません。
私は何か間違っているのですか、これはWindowsのバグですか?
EDIT
はい「ファイルは」FileStreamオブジェクトであり、私は単純にファイルストリームをラップストリーム上)(近くに呼び出すこともクリーンアップとFileStreamを呼び出すことにより、基本となるファイルストリームを配置すると仮定しました。 closeメソッド。しかし、私はそれについてもう分かりません。
これを使用ブロックで折り返しても同じ効果があります。
一つ余分ノートは、FileStreamオブジェクトが別の方法で作成されますが、それは何の違い
ファイルがまだロックされているとはどのように判断しますか?私はこの種のことを非常に頻繁にやっています。あなたが描いている問題に遭遇したことはありません。 –
「ファイル」とは何ですか?それはFileStreamですか?そうであれば、それを閉じる必要があり、それはOSの欠陥ではありません。 Jimのように、私は単純なIO操作で問題はありません。 –
"肛門保持"と "奇妙な"ファイルロックを制御できます。ファイルを開くときにファイルをロックしたくない場合は、次のようにします。http://msdn.microsoft.com/en-us/library/5h0z48dh.aspx http://msdn.microsoft.com/en-us/ /library/system.io.fileshare.aspx –