大文件Copy 大数据量复制
private void button3_Click(object sender, EventArgs e)
{
Thread thread = null;
//为了不让界面死掉,要将该操作放在一个线程中
thread = new Thread
(
() =>
{
//告诉系统不去检测非法的跨线程调用
CheckForIllegalCrossThreadCalls = false;
//创建一个文件流指向源文件
FileStream fsRead = new FileStream(this.textBox1.Text, FileMode.Open);
//创建一个文件流指向目标文件
FileStream fsWrite = new FileStream(this.textBox2.Text, FileMode.Create);
//记录一下该文件的长度
long fileLength = fsRead.Length;
//定义一个1M的缓冲区
byte[] buffer = new byte[1024 * 1024];
//先读取一次,并且将读取到的真正内容长度记录下来
int readLength = fsRead.Read(buffer, 0, buffer.Length);
//用来记录已经将多少内容写入到了文件中
long readCount = 0;
//只要读取到的内容不为0就接着读
while (readLength!=0)
{
//将前面已经读取到内存中的数据写入到文件中
fsWrite.Write(buffer ,0,readLength);
//已经读取的数量累加
readCount += readLength;
//计算已经读取的数据百分比
int percentage =(int)( readCount * 100 / fileLength);
this.progressBar1.Value = percentage;
//进行下一次读取
readLength = fsRead.Read(buffer, 0, buffer.Length);
}
fsRead.Close();
fsWrite.Close();
//清空缓冲区
buffer = null;
//回收一下内存
GC.Collect();
thread.Abort();
}
);
thread.Start();
}
大文件Copy 大数据量复制的更多相关文章
- Python-统计目录(文件夹)中Excel文件个数和数据量
背景:前一阵子在帮客户做Excel文件中的数据处理,但是每周提交周报,领导都需要统计从客户接收的文件数量以及记录数.所以我就简单写了统计的脚本,方便统计目录(文件夹)中的Excel文件个数和数据量. ...
- LINUX下查找大文件及大的文件夹
原帖地址:https://www.cnblogs.com/iyoume2008/p/6105590.html 今天正好碰到这样的问题,在博客园中看到有以上地址的一篇文章,照着上面的操作解决了问题,但是 ...
- Linux下查找大文件,大目录的方法
查找大文件 //列举出当前目录所有大于800M的文件 find . -type f -size +800M 1 2 第一个方法只用到了一个命令find,它能够帮我们做一些文件查找的操作.它常用的参数有 ...
- centos 7下查找大文件、大目录和常见文件查找操作
根据园子 潇湘隐者的文章 <Linux如何查找大文件或目录总结>结合实际运维需要整理出常用命令 目标文件和目录查找主要使用 find 命令 结合 xargs (给命令传递参数的一个过滤器, ...
- oracle 大表 已有大数据量 建索引防卡 nologging
create index idx_th_user_info_fans_name on th_user_info(fans_name) nologging;
- 【原创】用JAVA实现大文件上传及显示进度信息
用JAVA实现大文件上传及显示进度信息 ---解析HTTP MultiPart协议 (本文提供全部源码下载,请访问 https://github.com/grayprince/UploadBigFil ...
- 用JAVA实现大文件上传及显示进度信息
一. 大文件上传基础描述: 各种WEB框架中,对于浏览器上传文件的请求,都有自己的处理对象负责对Http MultiPart协议内容进行解析,并供开发人员调用请求的表单内容. 比如: Spring 框 ...
- java+大文件断点续传
用JAVA实现大文件上传及显示进度信息 ---解析HTTP MultiPart协议 (本文提供全部源码下载,请访问 https://github.com/1269085759/up6-jsp-mysq ...
- java多线程实现复制大文件
有些开发的时候我们经常遇到这样一个问题,对大文件的处理.比如:日志文件.那么十几G的大文件.我们应该如何复制呢? 还有就是希望从本地和远程复制文件,文件都很大,10G级的如何办呢? 在这里我告诉你们, ...
随机推荐
- sort 排序 自定义排序算法的使用
// struct sort_by_pt// {// bool operator()(const std::pair<CString, AcGePoint3d> a, const std: ...
- java虚拟机(八)--java性能监控与故障处理工具
问题定位: 除了个人经验,知识,工具也是很重要的,通过数据进行问题分析,包括:运行日志.异常堆栈.GC日志.线程快照(threaddump/javacore文件 ).堆转储快照(heapdump/hp ...
- ThinkPHP---thinkphp视图(V)
配置文件分3类:系统配置文件,分组配置文件,应用配置文件 ①系统配置文件ThinkPHP/Conf/convention.php: ②分组 / 模块 /平台配置文件Home/Conf/config.p ...
- Install Zabbix with Docker
1. mysql -uroot -p -h10.10.0.242 zabbix<schema.sqlEnter password: * ERROR 1709 (HY000) at line 86 ...
- MongoDB 启动和关闭
重启命令 service mongodb restart 启动命令 mongod -f /data/tools/mongodb/config/config.conf 必须要带配置文件才能启动 关闭命令 ...
- git学习(3)----git 新建分支并提交本地代码到远程分支
一.步骤 1.在gitlab上创建一个issue,issue一般来说是版本发布说明.比如本次更新了什么功能,修复了什么bug什么的. 2.然后在本地创建一个branch,或者直接在gitlab上申请m ...
- LTTng
Waiting for dig... http://frederic-wou.net/lttng/
- 向appstore提交app流程
http://www.cocoachina.com/newbie/tutorial/2013/0508/6155.html http://blog.csdn.net/holydancer/articl ...
- 最大子段和(洛谷P1115,动态规划递推)
洛谷题目链接 题目赋值出来格式有问题,所以我就只放题目链接了 下面为ac代码 #include<bits/stdc++.h> #define ll long long using name ...
- 洛谷 2173 BZOJ 2816 [ZJOI2012]网络
[题解] 明显的LCT模板题,c种颜色就开c棵LCT好了.. #include<cstdio> #include<algorithm> #define N 100010 #de ...