1

私は、ZIP アーカイブからファイルを読み取り、ファイル システム上のファイルに保存するアプリケーションを持っています。ファイルシステムに書き込んだ後、すぐに SAX2 リーダーでこのファイルを読み始めます。大きなファイル (300 MB 以上) では、閉じられていないタグが原因で SAX2 が解析を停止することがあります。しかし、ファイルをチェックすると(または後でもう一度読み込もうとしても)、それは機能するので、ファイル自体は問題ありません。

FZipKit.ExtractToStream(LFileName, LStream);
LStream.SaveToFile(OutputFilename);
SAX2.processUrl(OutputFilename);

私の推測では、解析プロセスを開始したとき、ファイルはまだファイル システムに完全に書き込まれていませんでした。

ファイルが書き込まれたこと、またはストリームがファイル システムにフラッシュされたことを確認する方法はありますか?

どうも

4

1 に答える 1

3

まず、XMLパーサーが正しく動作することを前提としています。ファイルを読み取ることができない場合、解決策は明らかです。

これにより、ファイルがどのように作成されるかを確認できます。SaveToFileを呼び出すと、ファイルが開かれ、書き込まれ、閉じられ、バッファーがフラッシュされます。プレーンなバニラシステムでは、XMLパーサーはファイルのコンテンツ全体を参照します。唯一の結論は、何かが干渉しているということです。最も疑わしいのはウイルススキャナーです。多くのスキャナーは、最も尊敬されているスキャナーでさえ、閉じられてすぐに再度開かれるファイルを適切に処理できません。

肝心なのは、コードは問題なく、問題はほぼ確実にローカル環境にあるということです。

于 2013-02-06T14:57:20.700 に答える