c++ 删除指定目录下指定文件名的1.jpg和1.dat文件,不用c++17,不用dirent.h和unistd.h头文件
时间: 2024-04-11 16:33:38 浏览: 169
如果您不想使用 `<dirent.h>` 和 `<unistd.h>` 头文件,您可以使用 `<filesystem>` 头文件中的函数来删除指定目录下指定文件名的1.jpg和1.dat文件。请注意,`<filesystem>` 头文件是从C++17开始引入的,但是一些编译器也提供了对其早期版本的支持。以下是一个示例代码:
```cpp
#include <iostream>
#include <string>
#include <filesystem>
namespace fs = std::filesystem;
void deleteFiles(const std::string& directory, const std::string& filename) {
for (const auto& entry : fs::directory_iterator(directory)) {
if (entry.is_regular_file()) {
std::string file = entry.path().filename().string();
if (file.find(filename) != std::string::npos && (file == "1.jpg" || file == "1.dat")) {
std::string filepath = entry.path().string();
if (fs::remove(filepath)) {
std::cout << "Deleted: " << filepath << std::endl;
} else {
std::cerr << "Failed to delete file: " << filepath << std::endl;
}
}
}
}
}
int main() {
std::string directory = "path/to/your/directory";
std::string filename = "1";
deleteFiles(directory, filename);
return 0;
}
```
您只需将代码中的 `"path/to/your/directory"` 替换为您想要删除文件的目录路径,将 `"1"` 替换为您指定的文件名。此代码会遍历目录下的所有文件,检查文件名是否包含指定的文件名,并且文件名为"1.jpg"或"1.dat",如果是则删除该文件。
请注意,使用 `<filesystem>` 头文件需要确保您的编译器支持C++17或更高版本,并在编译时链接正确的库文件。如果您的编译器不支持该头文件,您可以考虑使用第三方库(如Boost.Filesystem)来实现相同的功能。
阅读全文