什么是获取文件大小的好方法?

时间:2010-10-22 13:09:07

标签: c# .net

在我们的自定义C#日志系统中,我们使用streamWriter = File.CreateText(fileNameStr);创建文件并打开要写入的流。

现在我们要监控文件大小,看它是否达到了所需的最大大小。我做的是以下内容:

  1. 为about file:currFileInfo = new FileInfo(fileNameStr);
  2. 创建一个FileInfo对象
  3. 每次写入后获取文件大小:curFileInfo.Refresh(); fileSize = curFileInfo.Length;
  4. 将文件大小与最大文件大小进行比较,如果更大,则关闭当前文件并创建新文件。
  5. 我打印出来看看刷新FileInfo需要多长时间,很多时候需要大约15毫秒。

    所以我想可能有更好的方法来做到这一点。你的建议是什么?

2 个答案:

答案 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;