首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请大家帮忙想一个算法,多谢

2012-09-18 
请大家帮忙想一个算法,谢谢!C# codeListFileInfo fileList new ListFileInfo()fileList 中包含若干

请大家帮忙想一个算法,谢谢!

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

热点排行