c++ 删除一个目录下的jpg和dat文件,不用c++17
时间: 2024-04-11 11:33:19 浏览: 97
如果您的编译器不支持C++17,您可以使用旧的文件系统库来删除一个目录下的jpg和dat文件。以下是一个示例代码:
```cpp
#include <iostream>
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;
void deleteFiles(const std::string& directory, const std::vector<std::string>& extensions) {
for (const auto& entry : fs::directory_iterator(directory)) {
if (entry.is_regular_file()) {
std::string extension = entry.path().extension().string();
for (const auto& ext : extensions) {
if (extension == ext) {
fs::remove(entry.path());
std::cout << "Deleted: " << entry.path() << std::endl;
break;
}
}
}
}
}
int main() {
std::string directory = "path/to/your/directory";
std::vector<std::string> extensions = { ".jpg", ".dat" };
deleteFiles(directory, extensions);
return 0;
}
```
您只需将代码中的 `"path/to/your/directory"` 替换为您想要删除文件的目录路径。此代码会遍历目录下的所有文件,检查文件扩展名是否在给定的扩展名列表中,如果是则删除该文件。
请注意,此代码使用了旧版的文件系统库(std::experimental::filesystem),在C++17之前是作为实验性特性引入的。因此,您需要确保编译器支持该库,并在编译时链接正确的库文件。如果您的编译器不支持该库,您可以考虑使用第三方库(如Boost.Filesystem)来实现文件操作。
阅读全文