gpt4 book ai didi

c++ - 在 Linux 上用 C++ 移动文件的更快方法

转载 作者:IT王子 更新时间:2023-10-29 00:38:53 26 4
gpt4 key购买 nike

我正在尝试使用 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 秒。

有人有想法吗?

最佳答案

众所周知,流非常慢。您可以使用操作系统提供的工具,也可以使用一些可移植包装器。

我会推荐 boost::filesystem,因为它计划添加到 STL(C++14?)。

此处的文档:boost::filesystem::copy_file() .

关于c++ - 在 Linux 上用 C++ 移动文件的更快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19565085/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com