Класс алгоритмов работы с директориями. Подробнее...
#include <utilities/directory_utilities.h>
Открытые члены | |
virtual | ~Directory () |
Открытые статические члены | |
static void | ForceCreateDirectory (const char *DirPath) |
static void | ForceCreateDirectory (const std::string &DirPath) |
static bool | DirectoryExists (const char *DirPath) |
static bool | DirectoryExists (const std::string &DirPath) |
Класс алгоритмов работы с директориями.
См. определение в файле directory_utilities.h строка 49
nitro::Directory::~Directory | ( | ) | [virtual] |
Деструктор (виртуальный).
См. определение в файле directory_utilities.cpp строка 113
{ try { } catch( ... ) { } }
bool nitro::Directory::DirectoryExists | ( | const char * | DirPath | ) | [static] |
Проверяет существование папки.
DirPath | - Путь к папке чье существование проверяется. Наличие концевого слэша не требуется. |
nitro::exception | Кидает исключение этого типа с описанием ошибки. |
См. определение в файле directory_utilities.cpp строка 73
Перекрестные ссылки nitro::FSPath::AddEndSlash() и nitro::DirectoryAbstraction::FindFirst().
Используется в DirectoryExists() и ForceCreateDirectory().
{ try { nitro::DirectoryAbstraction Directory; std::string TmpDirectoryPath( nitro::FSPath::AddEndSlash( std::string( DirPath ) ) ); if( Directory.FindFirst( TmpDirectoryPath.c_str() ) ) { return( false ); } return( true ); } catch( nitro::exception e ) { return( false ); } catch( ... ) { throw( nitro::exception( std::string( "bool Directory::DirectoryExists( const char * DirPath )::An error occured" ) , 0 ) ); } }
bool nitro::Directory::DirectoryExists | ( | const std::string & | DirPath | ) | [static] |
Проверяет существование папки.
DirPath | - Путь к папке чье существование проверяется. Наличие концевого слэша не требуется. |
nitro::exception | Кидает исключение этого типа с описанием ошибки. |
См. определение в файле directory_utilities.cpp строка 97
Перекрестные ссылки nitro::exception::code(), DirectoryExists() и nitro::exception::what().
{ try { return( DirectoryExists( DirPath.c_str() ) ); } catch( nitro::exception e ) { throw( nitro::exception( std::string( "Directory::DirectoryExists( const std::string & DirPath )::" ) + e.what() , e.code() ) ); } catch( ... ) { throw( nitro::exception( std::string( "Directory::DirectoryExists( const std::string & DirPath )::An error occured" ) , 0 ) ); } }
void nitro::Directory::ForceCreateDirectory | ( | const char * | DirPath | ) | [static] |
Функция принудительного создания директории. Например есть путь e:/1/2. Причем папки /1 не существует, тогда CreateDirectory вернет ошибку. Поэтому ForceCreateDirectory принудительно создает необходимые папки.
DirPath | - Путь к создаваемой директории. Концевой слэш может отсутствовать. |
nitro::exception | Кидает исключение этого типа с описанием ошибки. |
См. определение в файле directory_utilities.cpp строка 10
Перекрестные ссылки nitro::exception::code(), nitro::DirectoryAbstraction::CreateDirectory(), nitro::FSPath::DeleteEndSlash(), DirectoryExists(), nitro::FSPath::ExtractFilePath() и nitro::exception::what().
Используется в ForceCreateDirectory(), nitro::File::ForceCreateFile() и nitro::UnZIPAbstraction::UnZIPFile().
{ try { char * SafePath; SafePath = new char[ strlen( DirPath ) + 1 ]; // обрубаем концевой слэш если нужно nitro::FSPath::DeleteEndSlash( DirPath , SafePath ); // произошла ошибка // проверяем может быть директория создана раньше if( DirectoryExists( ( const char * )SafePath ) ) { // т.е. такая директория уже создана // кстати тут обрабатывается такая ситуация - когда в функцию передан <drive_letter>:/ // тогда DirectoryExists вернет true для <drive_letter>:, т.к. она автоматом прибавляет / к пути return; } // директория не была создана раньше следовательно идем выше по пути char SubSafePath[ 4096 ]; if( std::string( nitro::FSPath::ExtractFilePath( SafePath , SubSafePath ) ) == SafePath ) { // т.е. не удалось выделить имя файла throw( nitro::exception( std::string( "An error occured while extracting file path from " ) + SafePath , 0 ) ); } else { ForceCreateDirectory( ( const char * )SubSafePath ); DirectoryAbstraction::CreateDirectory( ( const char * )SafePath ); //директория создана } delete [] SafePath; } catch( nitro::exception e ) { throw( nitro::exception( std::string( "/* static */ void Directory::ForceCreateDirectory( const char * DirPath )::" ) + e.what() , e.code() ) ); } catch( ... ) { throw( nitro::exception( std::string( "/* static */ void Directory::ForceCreateDirectory( const char * DirPath )::An error occured" ) , 0 ) ); } }
void nitro::Directory::ForceCreateDirectory | ( | const std::string & | DirPath | ) | [static] |
Функция принудительного создания директории. Например есть путь e:/1/2. Причем папки /1 не существует, тогда CreateDirectory вернет ошибку. Поэтому ForceCreateDirectory принудительно создает необходимые папки.
DirPath | - Путь к создаваемой директории. Концевой слэш может отсутствовать. |
nitro::exception | - Кидает исключение этого типа с описанием ошибки. |
См. определение в файле directory_utilities.cpp строка 57
Перекрестные ссылки nitro::exception::code(), ForceCreateDirectory() и nitro::exception::what().
{ try { ForceCreateDirectory( DirPath.c_str() ); } catch( nitro::exception e ) { throw( nitro::exception( std::string( "Directory::ForceCreateDirectory( const std::string & DirPath )::" ) + e.what() , e.code() ) ); } catch( ... ) { throw( nitro::exception( std::string( "Directory::ForceCreateDirectory( const std::string & DirPath )::An error occured" ) , 0 ) ); } }