資源簡介
大文件復制 多線程 c#
代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.IO;
using?System.Linq;
using?System.Text;
using?System.Threading;
using?System.Threading.Tasks;
using?System.Windows.Forms;
namespace?CopyFile
{
????public?partial?class?Form1?:?Form
????{
????????public?Form1()
????????{
????????????InitializeComponent();
????????}
????????private?void?Form1_Load(object?sender?EventArgs?e)
????????{
????????????InitialProgressBar();
????????}
????????//初始化進度條
????????private?void?InitialProgressBar()
????????{
????????????progressBar1.Minimum?=?0;
????????????progressBar1.Maximum?=?100;
????????????progressBar1.Value?=?0;
????????}
????????private?void?copy_Click(object?sender?EventArgs?e)
????????{
????????????//創建子線程來拷貝大文件
????????????Thread?t?=?new?Thread(new?ThreadStart(()?=>
??????????????{
??????????????????string?source?=?sourcebox.Text.Trim();
??????????????????string?target?=?targetbox.Text.Trim();
??????????????????BigFileCopy(source?target);
??????????????}));
????????????t.Start();
????????}
????????private?void?BigFileCopy(string?sourcestring?target)
????????{
????????????using(FileStream?fsReader=new?FileStream(sourceFileMode.OpenFileAccess.Read))
????????????{
????????????????using(FileStream?fsWriter=new?FileStream(targetFileMode.CreateFileAccess.Write))
????????????????{
????????????????????byte[]?array?=?new?byte[1024?*?1024];
????????????????????//讀取字節塊數據寫入緩沖區
????????????????????int?count?=?fsReader.Read(array?0?array.Length);
????????????????????while(count>0)
????????????????????{
????????????????????????//將字節塊寫入文件流
????????????????????????fsWriter.Write(array?0?count);
????????????????????????count?=?fsReader.Read(array?0?array.Length);
????????????????????????int?Value?=?(int)(fsWriter.Position?*?1.0?/?fsReader.Length?*?100);
????????????????????????//調用invoke方法避免線程沖突
????????????????????????progressBar1.Invoke(new?Action((u)?=>?{
????????????????????????????progressBar1.Value?=?u;
????????????????????????})Value);
????????????????????}
????????????????}
????????????????MessageBox.Show(“OK“);
????????????}
????????}
????}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2020-05-29?16:51??CopyFile\.vs\
?????目錄???????????0??2020-05-29?16:51??CopyFile\.vs\CopyFile\
?????目錄???????????0??2020-05-29?16:51??CopyFile\.vs\CopyFile\v16\
?????文件???????43520??2020-06-07?10:00??CopyFile\.vs\CopyFile\v16\.suo
?????文件?????????189??2020-05-29?16:51??CopyFile\App.config
?????目錄???????????0??2020-05-29?16:51??CopyFile\bin\
?????目錄???????????0??2020-05-29?17:58??CopyFile\bin\Debug\
?????文件???????10240??2020-06-07?09:41??CopyFile\bin\Debug\CopyFile.exe
?????文件?????????189??2020-05-29?16:51??CopyFile\bin\Debug\CopyFile.exe.config
?????文件???????32256??2020-06-07?09:41??CopyFile\bin\Debug\CopyFile.pdb
?????文件????????3604??2020-05-29?17:01??CopyFile\CopyFile.csproj
?????文件????????1121??2020-05-29?16:51??CopyFile\CopyFile.sln
?????文件????????2344??2020-06-07?09:41??CopyFile\Form1.cs
?????文件????????5147??2020-05-29?17:57??CopyFile\Form1.Designer.cs
?????文件????????5817??2020-05-29?17:57??CopyFile\Form1.resx
?????目錄???????????0??2020-05-29?16:51??CopyFile\obj\
?????目錄???????????0??2020-06-07?09:41??CopyFile\obj\Debug\
?????文件??????????42??2020-05-29?17:58??CopyFile\obj\Debug\CopyFile.csproj.CoreCompileInputs.cache
?????文件?????????585??2020-05-29?17:58??CopyFile\obj\Debug\CopyFile.csproj.FileListAbsolute.txt
?????文件????????1012??2020-05-29?17:58??CopyFile\obj\Debug\CopyFile.csproj.GenerateResource.cache
?????文件????????2379??2020-06-07?09:41??CopyFile\obj\Debug\CopyFile.csprojAssemblyReference.cache
?????文件???????10240??2020-06-07?09:41??CopyFile\obj\Debug\CopyFile.exe
?????文件?????????180??2020-05-29?17:58??CopyFile\obj\Debug\CopyFile.Form1.resources
?????文件???????32256??2020-06-07?09:41??CopyFile\obj\Debug\CopyFile.pdb
?????文件?????????180??2020-05-29?17:58??CopyFile\obj\Debug\CopyFile.Properties.Resources.resources
?????文件????????1435??2020-05-29?17:01??CopyFile\obj\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件????????7084??2020-05-29?16:51??CopyFile\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????目錄???????????0??2020-05-29?16:51??CopyFile\obj\Debug\TempPE\
?????文件?????????520??2020-05-29?16:51??CopyFile\Program.cs
?????目錄???????????0??2020-05-29?16:51??CopyFile\Properties\
?????文件????????1308??2020-05-29?16:51??CopyFile\Properties\AssemblyInfo.cs
............此處省略4個文件信息
- 上一篇:tcp和udp(Mina.net)
- 下一篇:圖片二進制讀取數據庫(附數據庫)
評論
共有 條評論