3.2.3 文件写入 文件写入是系统的核心部分。当用户进行写入操作后,系统会自动给每一个要拷贝的U盘创建各自的线程,由新建的线程执行拷贝任务。使用了多线程的概念以后,使得系统不再被文件拷贝任务所束缚,可以很
3.2.3 文件写入
文件写入是系统的核心部分。当用户进行写入操作后,系统会自动给每一个要拷贝的U盘创建各自的线程,由新建的线程执行拷贝任务。使用了“多线程”的概念以后,使得系统不再被文件拷贝任务所束缚,可以很快地响应用户的具体操作,从而极大地提高了文件的拷贝速度。
各线程的执行流程如图3所示:先在内存中开辟5M的空间,每次从源文件拷贝相应大小的文件块到内存中,再将其写入到指定的U盘,并且用变量对写入文件大小进行计算,实时地发送更新进度条的信号,如此反复操作直至拷贝完成。
各线程的文件拷贝算法直接影响着拷贝的速度,这种影响在对单个文件进行拷贝的时候表现不明显,但对整个文件夹进行拷贝时,这种影响就不可忽略了。本文使用了递归法即深度优先搜索的策略,这种搜索算法不会遗漏任何的文件节点,不会出现重复的搜索路径,并且保持了较高的搜索效率,在拷贝时对整个文件夹进行遍历,从而实现了整个文件夹的拷贝。
4. 结束语
本文讨论了高端USB拷贝机和低端BIN文件写入程序的不足,并提出了一种文件并行写入的解决方案,可以很好地解决文件拷贝问题。用C++编写的软件封装了动态链接库,跨平台兼容性好,移植性更加优良,同时具有高速的文件传输速度,实时性良好,能够提供给客户自由和完善的使用空间,完成了基于USB接口的资料共享和交换的目的。
参考文献:
[1]Xteam(China)Software Technology limited company.Qt programming.Beijing:QTsinghua Universily Press,2002.
[2]Blanchette.J,Summerfield.M.C++GUI Programming with Qt 4(2nd).London:prentice hall,2008.
[3]The Writing Group of Posts and Telecom press.Windows API Function reference manual.Beijing:Posts and Telecom pre-ss.2002.(责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)
顶一下
(0)
0%
踩一下
(0)
0%
版权声明:因本文均来自于网络,如果有版权方面侵犯,请及时联系本站删除.