方法一:
缺点:不支持中文,如果txt不是utf8编码,包含中文时会乱码
static void Main(string[] args)
{
string[] txtFiles = Directory.GetFiles(System.Environment.CurrentDirectory, "*.txt");
using (StreamWriter writer = new StreamWriter(System.Environment.CurrentDirectory + @"\allfiles.txt"))
{
for (int i = 0; i < txtFiles.Length; i++)
{
using (StreamReader reader = File.OpenText(txtFiles[i]))
{
writer.Write(reader.ReadToEnd());
}
}
}
}
方法二:改进后的方法(支持中文):
static void Main(string[] args)
{
string[] txtFiles= Directory.GetFiles(System.Environment.CurrentDirectory, "*.txt");
FileCombine c = new FileCombine();
c.CombineFile(txtFiles, System.Environment.CurrentDirectory + @"\allfiles.txt");
}
class FileCombine
{
public void CombineFile(String[] infileName, String outfileName)
{
int b;
int n = infileName.Length;
FileStream[] fileIn = new FileStream[n];
using (FileStream fileOut = new FileStream(outfileName, FileMode.Create))
{
for (int i = 0; i < n; i++)
{
try
{
fileIn[i] = new FileStream(infileName[i], FileMode.Open);
while ((b = fileIn[i].ReadByte()) != -1)
fileOut.WriteByte((byte)b);
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
fileIn[i].Close();
}
}
}
}
}