43

CSV ファイルを開くために使用していましたがFile.ReadAllText()、Excel でファイルを閉じるのを忘れるたびに、アプリケーションがファイルにアクセスできないために例外がスローされます。

(私にはクレイジーに思えます。つまり、ReadAllText の READ はかなり明確に見えるということです)

すべての機能を備えた File.Open があることは知っていますが、バッファと文字配列をいじることを伴わない「中間」メソッドはありますか?

4

2 に答える 2

65

次のものが欲しいだけだと思います:

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 によって読み取り共有モードで開かれている必要があります ( FileShare.NET の列挙を参照)。私はテストしていないので、Excel がこれを行うことを保証することはできません。

于 2009-09-07T12:26:59.167 に答える
0

使用中のファイルを開くためにファイル共有フラグを指定したい場合は、File.Open() に行き詰まっています。

于 2009-09-07T12:24:33.883 に答える