C++ 14 拷贝指定文件夹的图像复制到指定文件夹
时间: 2024-09-23 10:11:46 浏览: 26
在C++14中,你可以使用标准库中的`filesystem`模块以及一些基本的文件操作来实现这个功能。以下是一个简单的示例,展示了如何拷贝指定文件夹下的所有图像文件(假设图片是JPG、PNG或其他常见的图片格式)到另一个指定文件夹:
```cpp
#include <iostream>
#include <filesystem>
// 判断是否是图像文件
bool is_image(const std::filesystem::path& path) {
static const std::vector<std::string> image_extensions = {".jpg", ".jpeg", ".png", ".gif"};
return std::any_of(image_extensions.begin(), image_extensions.end(),
[path](const auto& ext) { return path.has_extension(ext); });
}
void copy_images_to_folder(const std::filesystem::path& src_dir, const std::filesystem::path& dst_dir) {
if (!std::filesystem::exists(src_dir)) {
std::cerr << "Source directory does not exist." << std::endl;
return;
}
if (!std::filesystem::is_directory(src_dir)) {
std::cerr << "Path is not a directory." << std::endl;
return;
}
for (const auto& entry : std::filesystem::directory_iterator(src_dir)) {
if (entry.is_regular_file() && is_image(entry.path())) {
std::filesystem::copy(entry.path(), dst_dir / entry.path().filename());
std::cout << "Copied file: " << entry.path() << " to " << dst_dir << std::endl;
}
}
}
int main() {
try {
// 设置源目录和目标目录
std::filesystem::path src_dir = "/path/to/source/directory";
std::filesystem::path dst_dir = "/path/to/destination/directory";
copy_images_to_folder(src_dir, dst_dir);
} catch (const std::filesystem::filesystem_error& e) {
std::cerr << "Error: " << e.what() << std::endl;
}
return 0;
}
```
在这个例子中,我们首先检查源目录是否存在并是否为目录,然后遍历源目录中的每个文件,如果发现是图像文件,就将其复制到目标目录。