我正试图通过使用C ++在Linux上移动文件。 问题是,源文件和目标文件夹可能位于不同的分区中。 所以我不能简单地移动文件。 好。 我决定复制文件并删除旧文件。
//----- bool copyFile(string source,string destination) { bool retval = false; ifstream srcF (source.c_str(),fstream::binary); ofstream destF (destination.c_str(),fstream::trunc|fstream::binary); if(srcF.is_open() && destF.is_open()){ destF << srcF.rdbuf(); //copy files binary stream retval = true; } srcF.close(); destF.close(); return retval; } //-----
现在我的问题。 我意识到,这个方法很慢。 100MB需要47秒。 用控制台命令简单复制一个文件需要2-3秒。
有人有想法吗?
如何初始化文件系统?
打印分区表 – C程序
CentOS 6.02 64位操作系统中的OpenSSL构build错误
psycopg2在“SELECT”语句对CentOS与Python 2.6的@R_353_4045@ion_schema执行时挂起
主分区的最大数量是多less?
将Postgresql数据库从Windows移到不同的sorting规则
如何使你的电脑的Android分区的形象
跨平台的分区pipe理库?
如何在CentOs中启动后编辑initramfs来添加新的分区
流被认为是非常缓慢的。 您可以使用操作系统提供的工具,也可以使用一些可移植的包装器。
我会推荐boost::filesystem ,因为它计划被添加到STL(C ++ 14?)。
文档在这里: boost :: filesystem :: copy_file() 。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。