开发者

what's a good way to get file size?

In our customized C# logging system, we use streamWriter = File.CreateText(fileNameStr); to create a file and open a stream for write.

Now we want to monitor the file size to see if it reach the max required size. What I did is the following:

  1. create a FileInfo object for about file: currFileInfo = new FileInfo(fileNameStr);
  2. get file size after each write: curFileInfo.Refresh(); fileSize = curFileInfo.Length;
  3. compare the file size with max file size, if bigger, close the current one and create a new file.

I have print out to see how long it will take to refresh the FileInfo, many times it will take about 15msec.

So I am thinking there may be a better way to do this. what's your suggestion开发者_JS百科?


This should work:

streamWriter.BaseStream.Position;

This should contain the current position of the stream and if you're using it for appending only, this should contain the correct file size.


FileSystemWatcher fsw=new FileSystemWatcher(filePath);
fsw.NotifyFilter=NotifyFilters.Size;
fsw.Filter="fileName";
fsw.Changed += new FileSystemEventHandler(YourHandler); 
fsw.EnableRaisingEvents = True;
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜