Cross-platform filesystem operations wrapper.
- Directory creation and removal
- File/directory renaming
- Existence checking
- Directory listing
- Path resolution
- File type detection
- File size retrieval
- Recursive directory copying
- Error-safe operations
bool CreateDirectory(const std::string& path_a)- Creates directorybool Remove(const std::string& path_a)- Removes file or empty directorybool Rename(const std::string& old_path_a, const std::string& new_path_a)- Renames/moves file/directorybool Exists(const std::string& path_a) const- Checks path existencebool Copy(const std::string& from_a, const std::string& to_a, bool recursive_a = false)- Copies files/directoriesstd::vector<std::string> ListDirectory(const std::string& path_a) const- Lists directory contentsstd::string GetAbsolutePath(const std::string& path_a) const- Converts to absolute pathbool IsDirectory(const std::string& path_a) const- Checks if path is directorybool IsFile(const std::string& path_a) const- Checks if path is regular fileuintmax_t FileSize(const std::string& path_a) const- Gets file size
#include <CUtils/Filesystem.hpp>
int main()
{
CUtils::Filesystem fs_;
// Create directory structure
fs_.CreateDirectory("data");
fs_.CreateDirectory("data/images");
// Copy files recursively
fs_.Copy("source/assets", "data/assets", true);
// List directory contents
auto files_ = fs_.ListDirectory("data");
for (const auto& file_ : files_)
{
std::cout << file_ << std::endl;
}
// Get file information
if (fs_.IsFile("data/config.ini"))
{
auto size_ = fs_.FileSize("data/config.ini");
std::cout << "Config size: " << size_ << " bytes" << std::endl;
}
// Cleanup
fs_.Remove("data");
return 0;
}Кросс-платформенная обертка для операций с файловой системой.
- Создание и удаление директорий
- Переименование файлов/директорий
- Проверка существования
- Получение списка файлов
- Преобразование путей
- Определение типа объектов
- Получение размера файлов
- Рекурсивное копирование
- Безопасная обработка ошибок
bool CreateDirectory(const std::string& path_a)- Создает директориюbool Remove(const std::string& path_a)- Удаляет файл или пустую директориюbool Rename(const std::string& old_path_a, const std::string& new_path_a)- Переименовывает/перемещает объектbool Exists(const std::string& path_a) const- Проверяет существование путиbool Copy(const std::string& from_a, const std::string& to_a, bool recursive_a = false)- Копирует файлы/директорииstd::vector<std::string> ListDirectory(const std::string& path_a) const- Возвращает содержимое директорииstd::string GetAbsolutePath(const std::string& path_a) const- Возвращает абсолютный путьbool IsDirectory(const std::string& path_a) const- Проверяет, является ли путь директориейbool IsFile(const std::string& path_a) const- Проверяет, является ли путь файломuintmax_t FileSize(const std::string& path_a) const- Возвращает размер файла
#include <CUtils/Filesystem.hpp>
int main()
{
CUtils::Filesystem fs_;
// Создать структуру каталогов
fs_.CreateDirectory("data");
fs_.CreateDirectory("data/images");
// Рекурсивное копирование файлов
fs_.Copy("source/assets", "data/assets", true);
// Перечислить содержимое каталога
auto files_ = fs_.ListDirectory("data");
for (const auto& file_ : files_)
{
std::cout << file_ << std::endl;
}
// Получить информацию о файле
if (fs_.IsFile("data/config.ini"))
{
auto size_ = fs_.FileSize("data/config.ini");
std::cout << "Размер конфигурации: " << size_ << " bytes" << std::endl;
}
// Очистка
fs_.Remove("data");
return 0;
}