这是我的问题here的后继问题,该问题涉及修剪日志文件中的胖内容。
我有以下代码:
private readonly FileStream _fileStream;
private readonly StreamWriter _streamWriter;
. . .
const int MAX_LINES_DESIRED = 1000;
string uriPath = GetExecutionFolder() + "\\Application.log";
string localPath = new Uri(uriPath).LocalPath;
if (!File.Exists(localPath))
{
File.Create(localPath);
}
_fileStream = File.OpenWrite(localPath);
// First, remove the earliest lines from the file if it's grown too much
StreamReader reader = new StreamReader(_fileStream);
. . .
在显示的最后一行失败:
System.ArgumentException was unhandled
_HResult=-2147024809
_message=Stream was not readable.
为什么不可读?我以为可能是因为文件为空,但是我向其中添加了一行,并且仍然得到相同的err msg。
最佳答案
File.OpenWrite
创建一个不可读的流。如果要读取和写入流,则需要使用File.Open(localPath, FileMode.Open, FileAccess.ReadWrite)
。
另外,您可以只使用FileMode.OpenOrCreate
,这将消除您对File.Exists
的有条件的需求。
关于c# - 为什么我的信息流不可读?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27431351/