代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
C#
】
复制文件并计算传输速度
作者:
羽昶
/ 发布于
2016/5/4
/
913
原理: 在复制文件之前读取一个系统时间, 复制完之后再读取系统时间, 然后计算 时间间隔, 用文件的大小除以时间得到传输速度 使用方法: 创建一个大于2G的文件,将其命名为"1.zip", 并将其与测试工具放在同一个文件夹里,然后运行程序. 在下拉列表框里选择盘符后, 点击 开始 按钮, 等3-4分钟, 就可以得到结果.(参考下面的结果图.)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; namespace SpeedTestTool { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { lblPrompt.Text = ""; //获得系统盘符,并将其显示在combobox里, 以供选择 DriveInfo[] allDrivers = DriveInfo.GetDrives(); foreach(DriveInfo d in allDrivers) { cmbPartition.Items.Add(d.Name); } } private void btnStart_Click(object sender, EventArgs e) { string surPath, desPath,ts,ts_h,ts_m,ts_s,strPartition; double t,speed; DateTime dt1, dt2; btnStart.Enabled = false; if (cmbPartition.SelectedIndex== -1) { //如果没有选择盘符, 则给出错误信息 MessageBox.Show("Please Select Target Partition firstly!","Error Message",MessageBoxButtons.OK,MessageBoxIcon.Error); } else { strPartition = cmbPartition.SelectedItem.ToString();//获得选择的系统盘符 //MessageBox.Show(strPartition); //定义源文件的路径 surPath = Directory.GetCurrentDirectory() + "\\1.zip"; //MessageBox.Show(surPath); //定义目标文件夹的路径 desPath = strPartition + "test"; //MessageBox.Show(desPath); //判断目标文件夹是否存在,如果不存在,就创建目标文件夹 if (!Directory.Exists(desPath)) { try { Directory.CreateDirectory(desPath); } catch (Exception error) { MessageBox.Show(error.Message); } } //判断目标文件是否存大,如果存在,就删除. if (File.Exists(desPath + "\\1.zip")) { try { File.Delete(desPath + "\\1.zip"); } catch(Exception error) { MessageBox.Show(error.Message); } } try { //开始复制文件之前,获得系统当前时间,将在txtBeginTime里显示出来. dt1 = DateTime.Now; txtBeginTime.Text = dt1.ToLongTimeString(); //复制文件 File.Copy(surPath, desPath + "\\1.zip"); //复制文件成功后,获得系统当前时间,将在txtEndTime里显示出来. dt2 = DateTime.Now; txtEndTime.Text = dt2.ToLongTimeString(); //计算间隔时间,并在txtInterval中显示出来 ts = (dt2 - dt1).ToString(); string[] strs = ts.Split(':'); ts_h = strs[0]; ts_m = strs[1]; ts_s = strs[2]; t = Convert.ToDouble(ts_s) + Convert.ToDouble(ts_m) * 60 + Convert.ToDouble(ts_h) * 3600; txtInterval.Text = (Convert.ToInt32(t)).ToString() + " s"; //得到文件的大小, 并在txtFileSize中显示出来 FileInfo fi = new FileInfo(desPath + "\\1.zip"); txtFileSize.Text = ((fi.Length) / (1024 * 1024)).ToString()+ " MB"; //计算速度并显示在txtSpeed中. speed = ((fi.Length) / (1024 * 1024)) / t; txtSpeed.Text = (Convert.ToInt32(speed)).ToString()+" MB/s"; //没完成的时候,给出提示 lblPrompt.ForeColor = Color.Green; lblPrompt.Text = "Complete!"; //让start按钮可以用 btnStart.Enabled = true; } catch (Exception error) { MessageBox.Show(error.Message,"Error Message",MessageBoxButtons.OK,MessageBoxIcon.Error); } } } } }
试试其它关键字
复制文件
计算传输速度
同语言下
.
C#实现的html内容截取
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
.
实现对图片上传的接收
.
去除字符串中的空格,回车,换行符转变成‘;’在按‘
.
按照回车换行符分割字符串
.
文件MD5码 比较,检测文件是否一样
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
羽昶
贡献的其它代码
(
15
)
.
获取每个月的开始和结束时间
.
崩溃相关
.
servlet跳转jsp页面
.
利用POI抽取PPT中的图片并保存在文件中
.
DataTable数据导入Excel数据
.
ie6实现div在select控件之上
.
使用jQuery来切换样式表
.
快速获取文件MD5值
.
复制文件并计算传输速度
.
腾讯地图与百度地图坐标转换
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3