C#如何实现文件分割?

Manonloki 2010-11-17 08:38:35
只要能分割就好~~~~

谁给贴个示例 谢谢了……
...全文
247 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Manonloki 2010-11-17
  • 打赏
  • 举报
回复
public class FilePartition
{
//字节长度
private static int bufflength = GetNetMappingAppConfig.VideoFileLength * 1048576;
//字节数组
private byte[] buff = new byte[bufflength];
private VideoFileInfo entity;

//构造函数初始化
public FilePartition(VideoFileInfo entity)
{
this.entity = entity;
}
//文件分割方法
public void Partition()
{
try
{
//获取文件信息
FileInfo fi = new FileInfo(entity.FilePath + entity.FileName);
//打开文件流
FileStream fs = new FileStream(entity.FilePath + entity.FileName, FileMode.Open);
//设置文件流起始位置为0字节
fs.Position = 0;
//取要分割的文件整数
int FileNum = Convert.ToInt32(fi.Length) / bufflength;
//取药分割的文件余数
int FileResidue = Convert.ToInt32(fi.Length) % bufflength;
if (FileResidue != 0)
{
FileNum++;
}
//
//读取文件流分割
//
if (FileNum > 1)
{
for (int i = 0; i < FileNum; i++)
{
//获取读取流当前位置
fs.Position = i * bufflength;
//读取
fs.Read(buff, 0, buff.Length);
//写入文件头
VideoFunction.Instance.createFile(entity.FilePath, i + ".264", VideoFunction.FileHeader);
//追加文件流
FileStream Wfs = new FileStream(entity.FilePath + i + ".264", FileMode.Append);
if (fs.Length >= (i + 1) * bufflength)
{
Wfs.Write(buff, 0, buff.Length);
}
else
{
long lastlength = fs.Length - i * bufflength;
Wfs.Write(buff, 0, Convert.ToInt32(lastlength));
}
Wfs.Close();//关闭写入流
VideoFunction.Instance.endFile(entity.FilePath, i + ".264");//写入文件尾
}
fs.Close();//关闭源文件读取
}
else
{
File.Move(entity.FilePath+entity.FileName,"0.264");//重命名
}
//删除源文件
File.Delete(entity.FilePath + entity.FileName);

}
catch (Exception e)
{
string Error= e.Message.ToString();
}
}
}

发个自己的吧= =…… 我构造函数里德形参不用管它 是我的程序用到的……

谢谢5楼了
flyerwing 2010-11-17
  • 打赏
  • 举报
回复
分段读取就是分割了吧.
huwen7565833 2010-11-17
  • 打赏
  • 举报
回复
C# 文件切分和组合源码
http://download.csdn.net/source/2838253
可以对任意类型的文件进行分割合并,用的多线程,进度条显示分割进度,速度快,优化处理过

cjnkd 2010-11-17
  • 打赏
  • 举报
回复
没看明白,可以写的具体点吗,
yuxianye1 2010-11-17
  • 打赏
  • 举报
回复
不明白楼主要干嘛??
单纯分割文件容易实现


Manonloki 2010-11-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 beautiful_melody 的回复:]

我也正有个问题需要将文件分割后刻在700mb的光盘上呢,
但是没想到去自己动手做,我的文件是780mb的bin文件
不知道能不能把它放入byte[]类型然后从中间给切两半
[/Quote]

一起等答案吧……
beautiful_melody 2010-11-17
  • 打赏
  • 举报
回复
我也正有个问题需要将文件分割后刻在700mb的光盘上呢,
但是没想到去自己动手做,我的文件是780mb的bin文件
不知道能不能把它放入byte[]类型然后从中间给切两半

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧