相关疑难解决方法(0)

获取当前文件长度/ FileInfo.Length缓存和陈旧信息

我正在跟踪文件的文件夹及其文件长度,至少有一个文件仍在写入.

我必须不断更新每个文件长度的记录,我将其用于其他目的.

Update如果文件长度与上一次更新中确定的长度不同,则每15秒调用一次该方法并更新文件的属性.

update方法如下所示:

var directoryInfo = new DirectoryInfo(archiveFolder);
var archiveFiles = directoryInfo.GetFiles()
                                .OrderByDescending(f=>f.CreationTimeUtc); 
foreach (FileInfo fi in archiveFiles)
{
    //check if file existed in previous update already
    var origFileProps = cachedFiles.GetFileByName(fi.FullName);
    if (origFileProps != null && fi.Length == origFileProps.EndOffset)
    {
        //file length is unchanged
    }
    else
    {
        //Update the properties of this file
        //set EndOffset of the file to current file length
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道DirectoryInfo.GetFiles()预先填充许多FileInfo属性的事实包括Length- 只要更新之间没有缓存(缓存的信息不应超过15秒),这是可以的.

我假设每个DirectoryInfo.GetFiles()调用生成一个新 …

.net c# file-io

17
推荐指数
2
解决办法
4873
查看次数

标签 统计

.net ×1

c# ×1

file-io ×1