我正在跟踪文件的文件夹及其文件长度,至少有一个文件仍在写入.
我必须不断更新每个文件长度的记录,我将其用于其他目的.
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()调用生成一个新 …
这似乎没有意义,所以我显然做错了什么:
DirectoryInfo folder = new DirectoryInfo(Environment.CurrentDirectory + @"\Test");
if (folder.Exists == false) {
folder.Create();
var doesItExists = folder.Exists;
}
Run Code Online (Sandbox Code Playgroud)
如果文件夹不存在,则创建该文件夹.除了doesItExists总是假的.如果我刚刚创建它,为什么会是假的呢?