C# 利用系统API 复制大文件(显示进度条)

c# 专栏收录该内容
43 篇文章 0 订阅
[csharp]   view plain copy
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Data;  
  5. using System.Drawing;  
  6. using System.Linq;  
  7. using System.Text;  
  8. using System.Windows.Forms;  
  9. using System.Runtime.InteropServices;  
  10. using System.IO;  
  11.   
  12. namespace MyWinfrm  
  13. {  
  14.     public partial class Form1 : Form  
  15.     {  
  16.         public Form1()  
  17.         {  
  18.             InitializeComponent();  
  19.         }  
  20.   
  21.         private void btn_select1_Click(object sender, EventArgs e)  
  22.         {  
  23.             OpenFileDialog openFileDialog1 = new OpenFileDialog();  
  24.             if(openFileDialog1.ShowDialog()==DialogResult.OK)  
  25.             {  
  26.                 textBox1.Text = openFileDialog1.FileName;  
  27.             }  
  28.         }  
  29.   
  30.         private void btn_select2_Click(object sender, EventArgs e)  
  31.         {  
  32.             FolderBrowserDialog f = new FolderBrowserDialog();  
  33.             if (f.ShowDialog() == DialogResult.OK)  
  34.             {  
  35.                 textBox2.Text = f.SelectedPath+@”\”+Path.GetFileName(textBox1.Text.Trim());  
  36.             }  
  37.         }  
  38.   
  39.         private void btn_statr_Click(object sender, EventArgs e)  
  40.         {  
  41.            ApiCopyFile.DoCopy(textBox1.Text.Trim(), textBox2.Text.Trim());   
  42.         }  
  43.     }  
  44.     public class ApiCopyFile  
  45.     {  
  46.         private const int FO_COPY = 0x0002;  
  47.         private const int FOF_ALLOWUNDO = 0x00044;  
  48.         //显示进度条  0x00044 // 不显示一个进度对话框 0x0100 显示进度对话框单不显示进度条  0x0002显示进度条和对话框  
  49.         private const int FOF_SILENT = 0x0002;//0x0100;  
  50.         //  
  51.         [StructLayout(LayoutKind.Sequential,   CharSet = CharSet.Auto,Pack=0)]    
  52.         public struct SHFILEOPSTRUCT    
  53.         {  
  54.             public IntPtr hwnd;    
  55.             [MarshalAs(UnmanagedType.U4)]    
  56.             public int wFunc;    
  57.             public string pFrom;   
  58.             public string pTo;   
  59.             public short fFlags;    
  60.             [MarshalAs(UnmanagedType.Bool)]    
  61.             public bool fAnyOperationsAborted;   
  62.             public IntPtr hNameMappings;   
  63.             public string lpszProgressTitle;    
  64.         }  
  65.         [DllImport(”shell32.dll”,   CharSet = CharSet.Auto)]   
  66.         static extern int SHFileOperation(ref SHFILEOPSTRUCT FileOp);    
  67.         public static bool DoCopy(string strSource, string strTarget)   
  68.         {   
  69.             SHFILEOPSTRUCT fileop = new SHFILEOPSTRUCT();  
  70.             fileop.wFunc = FO_COPY;    
  71.             fileop.pFrom = strSource;  
  72.             fileop.lpszProgressTitle = ”复制大文件”;  
  73.             fileop.pTo = strTarget;   
  74.             //fileop.fFlags = FOF_ALLOWUNDO;  
  75.             fileop.fFlags = FOF_SILENT;  
  76.             return  SHFileOperation(ref  fileop)==0;   
  77.         }   
  78.     }  
  79. }  

  • 2
    点赞
  • 4
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

目录: 第1章 窗体及菜单设计 实例001 自定义最化、最小化和关闭按钮 2 实例002 磁性窗体的设计 5 实例003 鼠标穿透窗体 12 实例004 窗体的浮动及隐藏 14 实例005 手动改变自制窗体的小 16 实例006 自定义屏保 19 实例007 向窗体中拖放图片并显示 22 实例008 仿Windows XP系统的任务栏菜单 26 实例009 用树型列表动态显示菜单 28 第2章 控件开发与应用 实例010 自定义水晶按钮控件 34 实例011 自制数值文本框组件 38 实例012 美化单选按钮和复选按钮 43 实例013 重绘ListBox控件 48 实例014 带行数和标尺的RichTextBox 49 实例015 根据文件显示文件复制进度条 54 实例016 弹出模式窗口显示进度条 58 实例017 Popup窗口提醒 61 实例018 Vista风格的日历 64 实例019 像Excel一样复制DataGridView中的单元格区域数据 69 实例020 DataGridView中单元格合并及添加、显示行号 74 实例021 从DataGridView控件中拖放数据到TreeView控件 78 第3章 图形图像及多媒体应用 实例022 生成中文验证码 86 实例023 生成图片缩略图 88 实例024 不失真压缩图片 90 实例025 批量图像格式转换 93 实例026 屏幕颜色拾取器 96 实例027 为数码照片添加日期 98 实例028 批量添加图片水印 100 实例029 仿QQ截图功能 104 实例030 屏幕抓图 107 实例031 抓取网站整页面 109 实例032 电子石英钟 113 实例033 图片自动播放 115 实例034 MP3播放器 118 实例035 播放FLV文件 121 实例036 Flash播放器 125 第4章 报表打印技术 实例037 自定义横向或纵向打印 130 实例038 自定义打印页码范围 133 实例039 分页打印 138 实例040 打印条形码 141 实例041 打印学生个人简历 145 实例042 打印商品入库单据 148 实例043 批量打印学生证书 150 实例044 动态绑定水晶报表 153 实例045 设计信封标签报表 157 实例046 设计汇款单式报表 157 第5章 鼠标键盘控制 实例047 自定义动画鼠标 161 实例048 鼠标设置器 163 实例049 屏蔽鼠标按键 167 实例050 虚拟键盘 172 实例051 设置/屏蔽系统热键 182 实例052 使用键盘控制窗体或控件的移动 189 实例053 多功能键盘 190 第6章 操作系统相关技术 实例054 利用API设置桌面背景 196 实例055 音乐风景桌面 198 实例056 定时关闭计算机 201 实例057 设置任务栏时间 205 实例058 CPU使用率 206 实例059 进程管理器 209 实例060 数字小写转换 212 实例061 系统挂机锁 214 实例062 全角半角转换 218 实例063 动态系统托盘图标 221 实例064 开机启动项管理 224 实例065 显示器控制 228 实例066 屏幕放镜 231 实例067 身份证号码验证工具 233 第7章 文件及数据流应用 实例068 文件批量更名 241 实例069 分割与合成文件 244 实例070 伪装文件夹 247 实例071 获取所有逻辑磁盘目录 250 实例072 汉字转拼音 253 实例073 使用C#操作INI文件 255 实例074 使用C#操作XML文件 257 实例075 创建PDF文档 261 实例076 批量将Word文档转换为HTML网页 263 实例077 Word目录提取工具 265 实例078 文件批量解压缩 269 第8章 网络开发应用 实例079 局域网端口扫描 276 实例080 局域网IP地址扫描 280 实例081 自动更换IP地址 283 实例082 IP地址及手机号码归属地查询 286 实例083 获取网络信息及流量 290 实例084 获取指定地区天气预报 292 实例085 发送与接收邮件 297 实例086 调用OutLook发送邮件 304 实例087 以断点续传方
第1章 认识C#及开发环境 1.1 C#概述 2 1.1.1 C#发展历程 2 1.1.2 C#语言编程环境 2 1.2 .NET Framework 2.0简介 2 1.2.1 什么是.NET Framework 2.0 2 1.2.2 .NET Framework 2.0特性 3 1.3 安装集成开发环境Visual Studio 2005 4 1.3.1 安装Visual Studio 2005开发环境 4 1.3.2 安装MSDN帮助 7 1.3.3 如何使用MSDN帮助 9 1.3.4 利用MSDN帮助附带的示例学习编程 11 1.4 启动Visual Studio 2005开发环境 12 1.4.1 启动Visual Studio 2005 12 1.4.2 创建项目 12 1.5 熟悉Visual Studio 2005集成开发环境 13 1.5.1 新特性 14 1.5.2 主窗口 14 1.5.3 菜单栏 14 1.5.4 工具栏 18 1.5.5 文档窗口 18 1.5.6 工具箱窗口 19 1.5.7 解决方案资源管理器窗口 20 1.5.8 属性窗口 20 1.5.9 代码编辑器 21 1.5.10 “错误列表”面板 22 1.5.11 “输出”面板 22 1.6 程序调试 22 1.6.1 断点操作 22 1.6.2 使用开始、中断和停止执行功能调试程序 23 1.6.3 单步执行 25 1.6.4 运行到程序的指定位置 25 第2章 QQ企业通 2.1 设计思路 28 2.2 关键技术 28 2.2.1 INI文件的应用 28 2.2.2 线程的应用 30 2.2.3 在Socket中发送容量的消息 30 2.2.4 将流序列化或反序列化为对象 31 2.2.5 用InnerList列表记录信息 31 2.3 设计过程 32 2.3.1 类库的设计 33 2.3.2 客户端注册模块设计 40 2.3.3 客户端登录模块设计 42 2.3.4 客户端QQ模块设计 43 2.3.5 客户端消息发送模块设计 48 2.3.6 服务器端控制台模块设计 52 第3章 SQL数据表提取器模块 3.1 概述 56 3.2 关键技术 56 3.2.1 如何备份数据库 56 3.2.2 如何还原数据库 57 3.2.3 如何附加数据库 58 3.2.4 如何分离数据库 59 3.2.5 设置数据库模式 59 3.3 设计过程 61 3.3.1 主窗体 61 3.3.2 获取服务器名称 62 3.3.3 获取所有数据库 63 3.3.4 获取所有数据表 64 3.3.5 备份数据库 66 3.3.6 还原数据库 67 3.3.7 附加数据库 68 3.3.8 分离数据库 70 3.3.9 导出表结构 71 3.3.10 导出数据 74 第4章 万能搜索模块 4.1 设计思路 80 4.2 关键技术 80 4.2.1 如何制作一个接口程序 80 4.2.2 实现接口程序的信息互传 80 4.2.3 如何将接口程序加载到其他程序中 82 4.2.4 怎样操作RichtextBox控件的选择文本 82 4.2.5 如何获取数据表中字段的描述信息 83 4.3 设计过程 83 4.3.1 获取数据表中字段的中文信息 84 4.3.2 添加数据表的查询条件 86 4.3.3 向SQL语句中添加括号 89 4.3.4 查询生成后的SQL语句 90 4.3.5 主程序获得接口信息 92 第5章 万能打印模块 5.1 设计思路 94 5.2 关键技术 94 5.2.1 打印设置(PrintDocument类) 94 5.2.2 打印预览对话框(PrintPreview Dialog) 95 5.2.3 打印对话框(PrintDialog) 96 5.2.4 获取指定颜色值和字体样式 97 5.2.5 DataGridView控件的相关应用 97 5.3 设计过程 98 5.3.1 打印信息的设置 98 5.3.2 表格样式的设置 100 5.3.3 打印类的设置 101 5.3.4 打印数据信息 108 第6章 决策分析模块 6.1 设计思路 112 6.2 关键技术 112 6.2.1 游标的基本操作 112 6.2.2 存储过程的基本操作 115 6.2.3 透视表的基本概念 117 6.2.4 统计表的基本操作 117 6.2.5 单击显示右键菜单 118 6.3 设计过程 118 6.3.1 主窗体的初始化 119 6.3.2 透视表的筛选 127 6.3.3 透视表的设计 130 6.3.4 统计表的设计 132 第7章 自定义图表控件 7.1 设计思路 136 7.2 关键技术 137 7.2.1 控件的生
C#示例源码 C#示例 C#源码 C#示例源代码 C#源代码 C#源代码例子 C#例子 注意:本源代码共有20章节,分五部分上传,名称分别为:明日科技《C#示例源代码》(1-4)、明日科技《C#示例源代码》(1-4)、明日科技《C#示例源代码》(5-8)、明日科技《C#示例源代码》(9-12)、明日科技《C#示例源代码》(13-16)、明日科技《C#示例源代码》(17-20)。 源代码目录: 第1章 窗体及菜单设计 实例001 自定义最化、最小化和关闭按钮 2 实例002 磁性窗体的设计 5 实例003 鼠标穿透窗体 12 实例004 窗体的浮动及隐藏 14 实例005 手动改变自制窗体的小 16 实例006 自定义屏保 19 实例007 向窗体中拖放图片并显示 22 实例008 仿Windows XP系统的任务栏菜单 26 实例009 用树型列表动态显示菜单 28 第2章 控件开发与应用 实例010 自定义水晶按钮控件 34 实例011 自制数值文本框组件 38 实例012 美化单选按钮和复选按钮 43 实例013 重绘ListBox控件 48 实例014 带行数和标尺的RichTextBox 49 实例015 根据文件显示文件复制进度条 54 实例016 弹出模式窗口显示进度条 58 实例017 Popup窗口提醒 61 实例018 Vista风格的日历 64 实例019 像Excel一样复制DataGridView中的单元格区域数据 69 实例020 DataGridView中单元格合并及添加、显示行号 74 实例021 从DataGridView控件中拖放数据到TreeView控件 78 第3章 图形图像及多媒体应用 实例022 生成中文验证码 86 实例023 生成图片缩略图 88 实例024 不失真压缩图片 90 实例025 批量图像格式转换 93 实例026 屏幕颜色拾取器 96 实例027 为数码照片添加日期 98 实例028 批量添加图片水印 100 实例029 仿QQ截图功能 104 实例030 屏幕抓图 107 实例031 抓取网站整页面 109 实例032 电子石英钟 113 实例033 图片自动播放 115 实例034 MP3播放器 118 实例035 播放FLV文件 121 实例036 Flash播放器 125 第4章 报表打印技术 实例037 自定义横向或纵向打印 130 实例038 自定义打印页码范围 133 实例039 分页打印 138 实例040 打印条形码 141 实例041 打印学生个人简历 145 实例042 打印商品入库单据 148 实例043 批量打印学生证书 150 实例044 动态绑定水晶报表 153 实例045 设计信封标签报表 157 实例046 设计汇款单式报表 157 第5章 鼠标键盘控制 实例047 自定义动画鼠标 161 实例048 鼠标设置器 163 实例049 屏蔽鼠标按键 167 实例050 虚拟键盘 172 实例051 设置/屏蔽系统热键 182 实例052 使用键盘控制窗体或控件的移动 189 实例053 多功能键盘 190 第6章 操作系统相关技术 实例054 利用API设置桌面背景 196 实例055 音乐风景桌面 198 实例056 定时关闭计算机 201 实例057 设置任务栏时间 205 实例058 CPU使用率 206 实例059 进程管理器 209 实例060 数字小写转换 212 实例061 系统挂机锁 214 实例062 全角半角转换 218 实例063 动态系统托盘图标 221 实例064 开机启动项管理 224 实例065 显示器控制 228 实例066 屏幕放镜 231 实例067 身份证号码验证工具 233 第7章 文件及数据流应用 实例068 文件批量更名 241 实例069 分割与合成文件 244 实例070 伪装文件夹 247 实例071 获取所有逻辑磁盘目录 250 实例072 汉字转拼音 253 实例073 使用C#操作INI文件 255 实例074 使用C#操作XML文件 257 实例075 创建PDF文档 261 实例076 批量将Word文档转换为HTML网页 263 实例077 Word目录提取工具 265 实例078 文件批量解压缩 269 第8章 网络开发应用 实例079 局域网端口扫描 276 实例080 局域网IP地址扫描 280 实例081 自动更换IP地址 283 实例082 IP地址及手机号码归属地查询 28
第1章 认识C#及开发环境 1.1 C#概述 1.1.1 C#发展历程 1.1.2 C#语言编程环境 1.2.NETFramework2.0简介 1.2.1 什么是.NETFramework2.0 1.2.2.NETFramework2.0特性 1.3 安装集成开发环境VisualStudio2005 1.3.1 安装VisualStudio2005开发环境 1.3.2 安装MSDN帮助 1.3.3 如何使用MSDN帮助 1.3.4 利用MSDN帮助附带的示例学习编程 1.4 启动VisualStudio2005开发环境 1.4.1 启动VisualStudio2005 1.4.2 创建项目 1.5 熟悉VisualStudio2005集成开发环境 1.5.1 新特性 1.5.2 主窗口 1.5.3 菜单栏 1.5.4 工具栏 1.5.5 文档窗口 1.5.6 工具箱窗口 1.5.7 解决方案资源管理器窗口 1.5.8 属性窗口 1.5.9 代码编辑器 1.5.10 “错误列表”面板 1.5.11 “输出”面板 1.6 程序调试 1.6.1 断点操作 1.6.2 使用开始、中断和停止执行功能调试程序 1.6.3 单步执行 1.6.4 运行到程序的指定位置 第2章 QQ企业通 2.1 设计思路 2.2 关键技术 2.2.1 INI文件的应用 2.2.2 线程的应用 2.2.3 在Socket中发送容量的消息 2.2.4 将流序列化或反序列化为对象 2.2.5 用InnerList列表记录信息 2.3 设计过程 2.3.1 类库的设计 2.3.2 客户端注册模块设计 2.3.3 客户端登录模块设计 2.3.4 客户端QQ模块设计 2.3.5 客户端消息发送模块设计 2.3.6 服务器端控制台模块设计 第3章 SQL数据表提取器模块 3.1 概述 3.2 关键技术 3.2.1 如何备份数据库 3.2.2 如何还原数据库 3.2.3 如何附加数据库 3.2.4 如何分离数据库 3.2.5 设置数据库模式 3.3 设计过程 3.3.1 主窗体 3.3.2 获取服务器名称 3.3.3 获取所有数据库 3.3.4 获取所有数据表 3.3.5 备份数据库 3.3.6 还原数据库 3.3.7 附加数据库 3.3.8 分离数据库 3.3.9 导出表结构 3.3.10 导出数据 第4章 万能搜索模块 4.1 设计思路 4.2 关键技术 4.2.1 如何制作一个接口程序 4.2.2 实现接口程序的信息互传 4.2.3 如何将接口程序加载到其他程序中 4.2.4 怎样操作RichtextBox控件的选择文本 4.2.5 如何获取数据表中字段的描述信息 4.3 设计过程 4.3.1 获取数据表中字段的中文信息 4.3.2 添加数据表的查询条件 4.3.3 向SQL语句中添加括号 4.3.4 查询生成后的SQL语句 4.3.5 主程序获得接口信息 第5章 万能打印模块 5.1 设计思路 5.2 关键技术 5.2.1 打印设置(PrintDocument类) 5.2.2 打印预览对话框(PrintPreviewDialog) 5.2.3 打印对话框(PrintDialog) 5.2.4 获取指定颜色值和字体样式 5.2.5 DataGridView控件的相关应用 5.3 设计过程 5.3.1 打印信息的设置 5.3.2 表格样式的设置 5.3.3 打印类的设置 5.3.4 打印数据信息 第6章 决策分析模块 6.1 设计思路 6.2 关键技术 6.2.1 游标的基本操作 6.2.2 存储过程的基本操作 6.2.3 透视表的基本概念 6.2.4 统计表的基本操作 6.2.5 单击显示右键菜单 6.3 设计过程 6.3.1 主窗体的初始化 6.3.2 透视表的筛选 6.3.3 透视表的设计 6.3.4 统计表的设计 第7章 自定义图表控件 7.1 设计思路 7.2 关键技术 7.2.1 控件的生成 7.2.2 如何在项目中添加控件 7.2.3 在“属性”对话框中添加属性 7.2.4 用GDI+绘制图形 7.2.5 如何在控件上绘制图形 7.2.6 获取扇形外弧中心点的位置 7.3 设计过程 7.3.1 向自定义控件中添加属性 7.3.2 获取绘制图表的初始值数据 7.3.3 绘制标签框 7.3.4 绘制图表中的表格 7.3.5 绘制条形图 7.3.6 绘制面形图 7.3.7 绘制饼形图 第8章 电子邮件收发模块 8.1 概述 8.2 关键技术 8.2.1 Base64编码格式 8.2.2 SMTP服务 8.2.3 POP3协议 8.2.4 使用Jmail组件接收邮件 8.2.5 邮件发送类的使用 8.2.6 使用正则表达式验证邮件格式 8.3 设
©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值