如何确保文件正确写入文件系统



我有一个应用程序,它可以从ZIP存档中读取文件并将其保存到文件系统上的文件中。在将其写入文件系统后,我立即开始使用SAX2读取器读取此文件。在较大的文件(300+MB)上,有时会出现由于未关闭的标记而导致SAX2停止解析的情况。但当我检查文件(甚至稍后尝试再次读取)时,它是有效的,所以文件本身是可以的。

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

我的假设是,当我开始解析过程时,文件还没有完全写入文件系统。

有没有办法确保文件已被写入或蒸汽已被刷新到文件系统?

thx

我首先假设XML解析器运行正常。如果它不能读取文件,那么解决方案是显而易见的。

这让我们来看看文件是如何创建的。调用SaveToFile时,会打开、写入、关闭文件,并刷新缓冲区。在普通的系统中,XML解析器将看到文件的全部内容。唯一的结论是有什么干扰。最像的嫌疑人是你的病毒扫描仪。许多扫描仪,甚至是最受尊敬的扫描仪,都无法正确处理关闭后立即重新打开的文件。

最重要的是,您的代码很好,问题几乎肯定出在您的本地环境上。

相关内容

  • 没有找到相关文章

最新更新