在我们的自定义C#日志系统中,我们使用streamWriter = File.CreateText(fileNameStr);
创建文件并打开要写入的流。
现在我们要监控文件大小,看它是否达到了所需的最大大小。我做的是以下内容:
currFileInfo = new FileInfo(fileNameStr);
curFileInfo.Refresh(); fileSize = curFileInfo.Length;
我打印出来看看刷新FileInfo需要多长时间,很多时候需要大约15毫秒。
所以我想可能有更好的方法来做到这一点。你的建议是什么?
答案 0 :(得分:6)
这应该有效:
streamWriter.BaseStream.Position;
这应包含流的当前位置,如果您仅使用它进行追加,则应包含正确的文件大小。
答案 1 :(得分:1)
FileSystemWatcher fsw=new FileSystemWatcher(filePath);
fsw.NotifyFilter=NotifyFilters.Size;
fsw.Filter="fileName";
fsw.Changed += new FileSystemEventHandler(YourHandler);
fsw.EnableRaisingEvents = True;