请大家帮忙想一个算法,谢谢!
C# code
List<FileInfo> fileList = new List<FileInfo>();
fileList 中包含若干个音频文件,数量不确定,现在需要对这些文件进行合并,最终返回一个大的音频文件,合并的代码如下:
C# code
FileStream AddStream = new FileStream(fullname1, FileMode.Create);
BinaryWriter AddWriter = new BinaryWriter(AddStream);
FileStream TempStreamA = new FileStream(fullname2, FileMode.Open);
BinaryReader TempReaderA = new BinaryReader(TempStreamA);
AddWriter.Write(TempReaderA.ReadBytes((int)TempStreamA.Length));
TempReaderA.Close();
TempStreamA.Close();
FileStream TempStreamB = new FileStream(fullname3, FileMode.Open);
BinaryReader TempReaderB = new BinaryReader(TempStreamB);
AddWriter.Write(TempReaderB.ReadBytes((int)TempStreamB.Length));
TempReaderB.Close();
TempStreamB.Close();
AddWriter.Close();
AddStream.Close();
其中:fullname1为合并以后新文件的文件名(可以自定义),fullname2、fullname3为合并前原始文件的文件名,
fileList 中的文件数量不确定,可能只有1个(实际上就不需要合并)、也可能2个,还可能2个以上,希望写一个函数来概括所有的情况,
请问大家这个函数应该如何写?
------解决方案--------------------
一个foreach 遍历整个 fileList
FileStream AddStream = new FileStream(fullname1, FileMode.Create);
BinaryWriter AddWriter = new BinaryWriter(AddStream);
foreach(var name in fileList)
{
FileStream TempStream = new FileStream(name, FileMode.Open);
BinaryReader TempReader = new BinaryReader(TempStream);
AddWriter.Write(TempReader.ReadBytes((int)TempStream.Length));
TempReaderA.disposd();
TempStreamA.Disposd();
}
------解决方案--------------------
遍历list取得FileStream TempStreamA = new FileStream(fullname2, FileMode.Open);
然后追加到 AddWriter