【发布时间】:2012-01-26 06:24:12
【问题描述】:
我更改了代码,以便可以只读方式打开文件。现在我无法使用File.WriteAllText,因为我的FileStream 和StreamReader 没有转换为字符串。
这是我的代码:
static void Main(string[] args)
{
string inputPath = @"C:\Documents and Settings\All Users\Application Data\"
+ @"Microsoft\Windows NT\MSFax\ActivityLog\OutboxLOG.txt";
string outputPath = @"C:\FAXLOG\OutboxLOG.txt";
var fs = new FileStream(inputPath, FileMode.Open, FileAccess.Read,
FileShare.ReadWrite | FileShare.Delete);
string content = new StreamReader(fs, Encoding.Unicode);
// string content = File.ReadAllText(inputPath, Encoding.Unicode);
File.WriteAllText(outputPath, content, Encoding.UTF8);
}
【问题讨论】:
-
StreamReader不是string。使用您已注释掉的File.ReadAllText方法将得到string。 -
看起来您只是将文件的内容复制到另一个目录。为什么不直接将文件复制到输出目录中?
-
嘿,很高兴你能够解密我对你上一篇文章的评论......在你的 FileStream 上做一个
using......你也需要在你做磁盘 IO 的任何时候尝试/捕捉...正如您已经看到的,有很多潜在的问题。除此之外,这些 StreamReader.ReadToEnd() 答案是您所需要的。 -
@docmanhattan 真正看起来像是一个学习练习。 :)
标签: c# streamreader