02-大文件Copy(FileStream文件流类)
static void Main(string[] args) { string source = @"e:\1.exe";//要移动文件的路径 大文件 string target = @"f:\1.exe";//将文件移动到的目标路径 CopyFile(source, target); Console.ReadKey(); } private static void CopyFile(string source, string target) { //1.创建一个读取文件的流 using (FileStream fsRead = new FileStream(source, FileMode.Open)) { //2.创建一个写入文件的流 using (FileStream fsWrite = new FileStream(target, FileMode.Create)) { //3.创建一个读取文件、写入文件的缓冲区 byte[] buffer = new byte[1024 * 1024 * 10];//缓冲区大小为10M long fsLen = fsRead.Length;//获取源文件的总字节数 while (true)//4.开始读取、写入文件 { //返回值r表示本次实际读取到的字节数 fsRead.Position属性表示当前流的位置 int r = fsRead.Read(buffer, 0, buffer.Length); #region 文件加密操作 255-189 字节就会变,加入到的文件字节就变了 //for (int i = 0; i < buffer.Length; i++) //{ // buffer[i] = (byte)(Byte.MaxValue - buffer[i]); //} #endregion if (r <= 0)//表示读取到了文件的末尾 { break; } //如果r>0,则表示本次读取到了内容,将读取出来的buffer内容写入到fsWrite文件流中。 else { fsWrite.Write(buffer, 0, r);//注意长度是 r long lenAlready = fsWrite.Length; double proc = (double)lenAlready / fsLen; //double proc = (double)fsWrite.Position / len; Console.WriteLine("拷贝进度:{0}%", proc * 100); } } } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步