我正在编写一个程序,该程序可以查看文件夹中的所有文件,然后将控制台输出写入新的txt文件,但是当我写1行后运行该程序时,它会显示一条错误消息
System.ObjectDisposedException:'无法写入关闭的TextWriter。
这是代码:
string[] files = Directory.GetFiles(@"C:\CSA FIles(test)\", "*.*",
SearchOption.AllDirectories);
foreach (string file in files)
{
if (File.GetLastWriteTime(file)
< DateTime.Now.AddMonths(-3))
{
Console.WriteLine(file);
using (StreamWriter writer = new StreamWriter(@"C:\for checking\sample.txt"))
{
Console.SetOut(writer);
Act();
}
void Act()
{
Console.WriteLine(file);
}`
答案 0 :(得分:0)
正如罗恩(Ron)在评论中所说,StreamWriter
对象在被Console
使用的同时被处置。最好在处置StreamWriter
之前恢复原始流。
using (StreamWriter writer = new StreamWriter(@"C:\for checking\sample.txt"))
{
var originalStream = Console.Out;
Console.SetOut(writer);
Act();
Console.SetOut(originalStream);
} //writer object is disposed here
Microsoft提供了一个示例here。