File.ReadAllText()
を使用してCSVファイルを開いていますが、Excelでファイルを閉じるのを忘れるたびに、アプリケーションはファイルにアクセスできないため、例外をスローします。
(私には気が狂っているようです。つまり、ReadAllTextのREADはかなり明確に見えます)
すべてのベルとホイッスルを備えたFile.Openがあることは知っていますが、バッファーとchar配列をいじり回さない「中間」メソッドはありますか?
私はあなたがただ以下が欲しいと思います:
using (var fileStream = new FileStream("foo.bar", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (var textReader = new StreamReader(fileStream))
{
var content = textReader.ReadToEnd();
}
FileAccess.Read
パラメータは重要であり、ファイルのみを読み取りたいことを示します。もちろん、これを行う場合でも、ファイルはExcelによってread-shareモードで開かれている必要があります(.NETのFileShare
列挙型を参照)。私はテストを行っていないので、Excelがこれを行うことを保証することはできませんが、そうなると思います。
使用中のファイルを開くためにファイル共有フラグを指定する場合は、File.Open()でスタックします。