我正在跟踪文件的文件夹及其文件长度,至少有一个文件仍在写入.
我必须不断更新每个文件长度的记录,我将其用于其他目的.
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()调用生成一个新 …