C#FileStream复制大文件
来源:互联网 发布:网络鸡汤是什么意思 编辑:程序博客网 时间:2024/04/30 06:53
即每次复制文件的一小段,以节省总内存开销。当然,本机复制也可以采用.NET内部的System.IO.File.Copy方法。
///<summary>
///复制文件
///</summary>
///<param name="fromFile">要复制的文件</param>
///<param name="toFile">要保存的位置</param>
///<param name="lengthEachTime">每次复制的长度</param>
private void CopyFile(string fromFile, string toFile, int lengthEachTime)
{
FileStream fileToCopy = new FileStream(fromFile, FileMode.Open, FileAccess.Read);
FileStream copyToFile = new FileStream(toFile, FileMode.Append, FileAccess.Write);
int lengthToCopy;
if (lengthEachTime < fileToCopy.Length)//如果分段拷贝,即每次拷贝内容小于文件总长度
{
byte[] buffer = new byte[lengthEachTime];
int copied = 0;
while (copied <= ((int)fileToCopy.Length - lengthEachTime))//拷贝主体部分
{
lengthToCopy = fileToCopy.Read(buffer, 0, lengthEachTime);
fileToCopy.Flush();
copyToFile.Write(buffer, 0, lengthEachTime);
copyToFile.Flush();
copyToFile.Position = fileToCopy.Position;
copied += lengthToCopy;
}
int left = (int)fileToCopy.Length - copied;//拷贝剩余部分
lengthToCopy = fileToCopy.Read(buffer, 0, left);
fileToCopy.Flush();
copyToFile.Write(buffer, 0, left);
copyToFile.Flush();
}
else//如果整体拷贝,即每次拷贝内容大于文件总长度
{
byte[] buffer = new byte[fileToCopy.Length];
fileToCopy.Read(buffer,0,(int)fileToCopy.Length);
fileToCopy.Flush();
copyToFile.Write(buffer, 0, (int)fileToCopy.Length);
copyToFile.Flush();
}
fileToCopy.Close();
copyToFile.Close();
}
- C#FileStream复制大文件
- C#FileStream复制大文件
- C#FileStream复制大文件
- C# FileStream复制大文件
- C# FileStream复制大文件
- 读取大文件Filestream
- FileStream大文件使用方法
- FileStream实现多媒体文件复制
- c#FileStream文件读写
- c#FileStream文件读写
- c#FileStream文件读写
- c#FileStream文件读写
- c#FileStream文件读写(转)
- c#FileStream文件读写(转)
- c#FileStream文件读写(转)
- C#FileStream文件流(字符)
- c#FileStream文件读写(转)
- c#FileStream文件读写(转)
- SQL操作全集
- ATL中控件不能响应消息的问题
- 经典文摘
- 导出EXCEL所用到的类
- 定时刷新页面
- C#FileStream复制大文件
- Oracle解除了Bea产品License在技术上的限制
- 条码打印机的接口类型
- able语言编程(硬件方向)
- perl环境的搭建
- WIFI 介绍
- DB2常用命令大全
- PE教程6: Import Table(引入表)二
- myeclipse中安装jdbc for sql 2000.txt