FileInfo.Length 未反映当前使用的数据文件增长

Currently used data file growth is not reflected by FileInfo.Length

我需要在不打开数据库文件的情况下理想地获取它的大小。事实上,我需要在文件更改时启动一个事件。 它是一个 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.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();
}

现在可以了。虽然不确定这是否是最好的方法。