我需要在不打开数据库文件的情况下获得理想的数据库文件大小。实际上,当文件更改时,我需要启动一个事件。 它是一个dataflex dat文件,相当过时的数据库应用程序。 数据库应用程序正在打开和使用该文件,fileinfo报告大小不正确。
可能原因如下: https://blogs.msdn.microsoft.com/oldnewthing/20111226-00/?p=8813
我正在使用这个c结构:
private FileInfo _dbFileInfo = new FileInfo("..."); ... _dbFileInfo.Refresh(); var len = _dbFileInfo.Length;
但是 _dbFileInfo.Length 文件增长时不会更改。 在不检查文件内容的情况下,是否有解决此问题的方法?
_dbFileInfo.Length
我改了台词
_dbFileInfo.Refresh(); var len = _dbFileInfo.Length;
到
long len; using (FileStream fs = File.Open(_dbFileInfo.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { len = fs.Length; fs.Close(); }
现在它开始工作了。但不确定这是否是最好的方法。