考慮這段代碼:轉儲到控制檯的工作原理就像一個魅力,而不是一個文件,C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace DataExtractor
{
class Program
{
static void Main(string[] args)
{
string destpath = Directory.GetCurrentDirectory();
destpath = Path.Combine(destpath, "DIR");
DirectoryInfo Dest = Directory.CreateDirectory(destpath);
DirectoryInfo Source = new DirectoryInfo(Directory.GetCurrentDirectory() + "\\IEOD");
FileInfo[] fiArr = Source.GetFiles("*.csv");
Console.WriteLine("Search Date:");
string srchdate = Console.ReadLine();
FileInfo r;
foreach (FileInfo f in fiArr)
{
r = new FileInfo(Path.Combine(destpath,f.Name));
r.Create();
string path = Path.Combine(destpath, f.Name);
string[] lines = File.ReadAllLines(f.FullName);
var output = lines.Where(line => line.Split(',')[0] == srchdate);
try
{
//File.WriteAllLines(path, output.ToArray());
Console.WriteLine(output.ToArray());
Console.Write("\n");
}
catch(Exception ex)
{
Console.WriteLine(ex.StackTrace);
}
}
Console.ReadKey();
}
}
}
什麼是錯的這一段代碼?在try塊內部,Console.WriteLine()的工作方式類似於魅力,但try塊中的註釋行File.WriteAllLines()不起作用。出現的錯誤消息是,該文件{}正在被另一個進程使用。
這是發生無論是什麼,如果我使用的StreamWriter或File.WriteAllLines()
幫助表示讚賞。 Soham
哇!非常感謝!我懷疑這個問題,但從來沒有想過Create()會使文件保持打開狀態。謝謝 – Soham 2010-06-04 11:50:28