1
私はC#でファイルストリームを扱っています。それはストレージキャッシュなので、ファイルが壊れた場合(破損したデータなど)、ファイルとを削除すると、例外が再発行され、問題が報告されます。私はそれを最良の方法で実装する方法を考えています。私の最初の試行は:C#クローズストリームと何かが失敗した場合にファイルを削除します。
Stream fileStream = null;
try
{
fileStream = new FileStream(GetStorageFile(),
FileMode.Create, FileAccess.Write, FileShare.Write);
//write the file ...
}
catch (Exception ex)
{
//Close the stream first
if (fileStream != null)
{
fileStream.Close();
}
//Delete the file
File.Delete(GetStorageFile());
//Re-throw exception
throw;
}
finally
{
//Close stream for the normal case
if (fileStream != null)
{
fileStream.Close();
}
}
ファイルの書き込みに何か悪くなったら、fileStreamは2回閉じます。私はそれが動作することを知っているが、私はそれが最良の実装だとは思わない。
finally
ブロックを削除して、ブロックをtry
ブロックに閉じ込めると思っていますが、あなたが専門家であり、専門家の声を聞きたいので、ここに投稿しました。
ありがとうございました。
うん、ことをする必要はありません。ポイント。完璧、ありがとう! –