gpt4 book ai didi

c++ - 在 C++ 中将文件从一个目录复制到另一个目录

转载 作者:行者123 更新时间:2023-12-03 07:00:22 55 4
gpt4 key购买 nike

我正在编写一个 C++ 程序来将一个文件从一个目录复制到另一个目录。我不想使用 C++ 17 功能。我已经在以下代码中实现了这一点。

#include <iostream>
#include <exception>
#include <filesystem>

using std:: cout;
using std:: cin;
using std:: endl;

int main(int argc, char* argv[])
{
if(argc != 3) {
cout << "Usage: ./copyFile.out path_to_the_file destination_path";
return 1;
}
std:: string source = argv[1];
std:: string destination = argv[2];
std:: filesystem:: path sourceFile = source;
std:: filesystem:: path targetParent = destination;
auto target = targetParent / sourceFile.filename();

try
{
std:: filesystem:: create_directories(targetParent); // Recursively create the target directory path if it does not exist.
std:: filesystem:: copy_file(sourceFile, target, std ::filesystem ::copy_options::overwrite_existing);
}
catch (std::exception& e) //If any filesystem error
{
std::cout << e.what();
}
return EXIT_SUCCESS;
}
我在 Linux 上,我想使用操作系统 cp命令来执行此操作。我写了这段代码。
#include <iostream>
#include <cstdlib>
using namespace std;

int main(int argc, char *argv[]) {

std:: string source, destination;

if(argc != 3) {
cout << "Usage: ./copyFile.out path_to_the_file destination_path";
return 1;
}

source = argv[1];
destination = argv[2];

system("cp source destination");
}
错误是:cp:源:没有这样的文件或目录,我如何使用system()来做到这一点?

最佳答案

改变这个:

system("cp source destination");
对此:
std::string cmd = std::string("cp '") + source + "' '" + destination + "'";
system(cmd.c_str());
顺便说一句,你应该从 if(argc != 3) 内部返回语句,或者在 else 中执行其余代码陈述。
最后,函数 int main(int argc, char *argv[])要求您返回 int值(value)。

关于c++ - 在 C++ 中将文件从一个目录复制到另一个目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64660000/

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