часть1
#include
#include
#include
#include
namespace fs = std::filesystem;
class FileOperations {
public:
static void createFile(const std::string& path) {
std::ofstream file(path);
if (file.is_open()) {
file.close();
std::cout << "File created: " << path << std::endl;
} else {
std::cerr << "Error creating file: " << path << std::endl;
}
}
static void deleteFile(const std::string& path) {
if (fs::remove(path)) {
std::cout << "File deleted: " << path << std::endl;
} else {
std::cerr << "Error deleting file: " << path << std::endl;
}
}
static void renameFile(const std::string& oldPath, const std::string& newPath) {
try {
fs::rename(oldPath, newPath);
std::cout << "File renamed from " << oldPath << " to " << newPath << std::endl;
} catch (const fs::filesystem_error& e) {
std::cerr << "Error renaming file: " << e.what() << std::endl;
}
}
static void copyFile(const std::string& source, const std::string& destination) {
try {
fs::copy(source, destination, fs::copy_options::overwrite_existing);
std::cout << "File copied from " << source << " to " << destination << std::endl;
} catch (const fs::filesystem_error& e) {
std::cerr << "Error copying file: " << e.what() << std::endl;
}
}
};
class DirectoryOperations {
public:
static void createDirectory(const std::string& path) {
if (fs::create_directory(path)) {
std::cout << "Directory created: " << path << std::endl;
} else {
std::cerr << "Error creating directory: " << path << std::endl;
}
}
static void deleteDirectory(const std::string& path) {
if (fs::remove_all(path)) {
std::cout << "Directory deleted: " << path << std::endl;
} else {
std::cerr << "Error deleting directory: " << path << std::endl;
}
}
static void renameDirectory(const std::string& oldPath, const std::string& newPath) {
try {
fs::rename(oldPath, newPath);
std::cout << "Directory renamed from " << oldPath << " to " << newPath << std::endl;
} catch (const fs::filesystem_error& e) {
std::cerr << "Error renaming directory: " << e.what() << std::endl;
}
}
olimchikМастер (1233)
6 месяцев назад
1. FileOperations - содержит статические методы для создания, удаления, переименования и копирования файлов.
2. DirectoryOperations - содержит статические методы для создания, удаления, переименования директорий, вычисления их размера и поиска файлов по маске.
3. FileManager - основной класс, который управляет отображением содержимого директорий.
Этот простой файловый менеджер демонстрирует базовые операции с файлами и директориями, используя ООП в C++.
наследование и так далее).
Файловый менеджер должен иметь такие возможности:
■ показывать содержимое дисков;
■ создавать папки/файлы;
■ удалять папки/файлы;
■ переименовывать папки/файлы;
■ копировать/переносить папки/файлы;
■ вычислять размер папки/файла;
■ производить поиск по маске (с поиском по подпапкам) и так далее.