将一个目录下的指定文件夹及其子目录中的所有jpg文件拷贝到另一个本地目录下。 具体来说,代码中先设置了一个远程IP地址 ip_path,然后根据传入的参数(日期和二维码)拼接出一个远程路径 path,并调用函数 findNameJpgFiles 获取该路径下的所有 jpg 文件的路径。 随后,代码使用 foreach 循环遍历这些 jpg 文件的路径,对于每个文件: 判断该文件是否存在,如果不存在则直接返回; 构建该文件在本地目录下的输出路径; 如果该文件所在的目录在本地不存在,则创建该目录; 调用
时间: 2024-03-06 08:47:06 浏览: 150
std::filesystem::copy_file 将文件从远程路径拷贝到本地路径下。可以使用如下 C++17 代码实现:
```cpp
#include <filesystem>
#include <QString>
#include <QDir>
#include <QDebug>
void copyJpgFiles(const QString& remoteIP, const QString& date, const QString& code, const QString& outputPath)
{
// 构造远程路径
QString remotePath = remoteIP + date + "/" + code;
// 查找 jpg 文件
QStringList pathList = findNameJpgFiles(remotePath);
// 遍历 jpg 文件
for (const QString& filePath : pathList)
{
// 判断文件是否存在
QFile file(filePath);
if (!file.exists())
{
continue;
}
// 构造输出路径
QString fileName = QFileInfo(filePath).fileName();
QString destPath = outputPath + "/" + date + "/" + code + "/" + fileName;
// 创建目录
QDir destDir = QFileInfo(destPath).dir();
if (!destDir.exists())
{
if (!destDir.mkpath(destDir.absolutePath()))
{
qDebug() << "Failed to create destination directory.";
continue;
}
}
// 拷贝文件
std::filesystem::copy_file(filePath.toStdString(), destPath.toStdString(), std::filesystem::copy_options::overwrite_existing);
}
}
```
其中,`findNameJpgFiles` 函数用于查找指定路径下的所有 jpg 文件,`outputPath` 参数表示本地输出路径。
阅读全文