Aar*_*ron 2 c# file copying winforms progress-bar
我有一个我正在处理的文件管理器应用程序.这些文件通常为500MB到2GB.一切正常,但应用程序"停止响应"非常烦人.我想做的是逐字节或兆字节复制,每次读/写操作后都有一些Application.DoEvents().沿着这些方向,我不知道实际使用的类是什么,所以我只是想做些什么:)
private void CopyFile(string inFilename, string outFilename)
{
FileReader inReader(inFilename);
FileWriter outWriter(outFilename, FileMode.OpenOrCreate);
byte theByte;
while (theByte = inReader.ReadByte())
{
outWriter.WriteByte(theByte, WriteMode.Append);
UpdateProgressBar();
Application.DoEvents();
}
inReader.CloseFile();
outWriter.CloseFile();
}
Run Code Online (Sandbox Code Playgroud)
我知道这似乎应该是一件简单的事情,但是对于我的生活,我似乎无法找到任何一种不使用直接API调用或其他方式的例子.我必须在这里遗漏一些东西,所以如果有人能让我走在正确的轨道上,我真的很感激.
提前致谢!
您应该在表单上使用BackgroundWorker进行复制.它将允许文件副本在单独的线程上完成,并让您的UI响应.虽然增加了一些复杂性,但BackgroundWorker会为您处理大量的管道工作.但是,也有很多的例子中,你想要做什么.
归档时间: |
|
查看次数: |
4008 次 |
最近记录: |