下面的程序解析了一個Dwarf Fortress.的所謂的RAW文件。代碼工作正常,但是對於我目前的實現,我需要爲每個文件運行一次程序,每次手動更改源文件。有沒有辦法解析給定文件夾中的所有文本文件?如何從給定文件夾中的所有文件讀取?
(請注意,當前輸出文件與輸入文件位於同一文件夾中,我不太確定如果程序試圖打開它正在寫入的文件時會發生什麼,但它是需要記住的東西)。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// create reader & open file
string filePath = @"C:\foo\Dwarf Fortess\creature_domestic.txt";
string destPath = @"C:\foo\Dwarf Fortess\eggCreatures.txt";
string line;
//
TextReader tr = new StreamReader(filePath);
TextWriter tw = new StreamWriter(destPath);
// read a line of text
while ((line = tr.ReadLine()) != null)
{
if (line.Contains("[CREATURE:"))
{
tw.WriteLine(line);
}
if(line.Contains("[LAYS_EGGS]"))
{
tr.ReadLine();
tr.ReadLine();
tr.ReadLine();
tw.WriteLine(tr.ReadLine());
tw.WriteLine(tr.ReadLine());
}
}
// close the stream
tr.Close();
tw.Close();
}
}
}
*使用*讓我那.Close()不? – 2011-03-24 22:44:30
@Raven Dreamer - 使用你的代碼時,如果在調用Close之前引發異常,流將不會被關閉。 – Oded 2011-03-24 22:45:32
啊,所以我也可以在最後關閉它們。疑難雜症。 – 2011-03-24 22:47:39