/* */ #include "Directory.h" #include "File.h" #include "DlAbortEx.h" #include "message.h" #include #include #include Directory::Directory(const string& name):name(name) {} Directory::~Directory() { for(Files::iterator itr = files.begin(); itr != files.end(); itr++) { delete *itr; } } void Directory::createDir(const string& parentDir, bool recursive) const { string path = parentDir+"/"+name; File f(path); if(f.exists()) { if(!f.isDir()) { throw new DlAbortEx(EX_NOT_DIRECTORY, path.c_str()); } } else { if(mkdir(path.c_str(), S_IRUSR|S_IWUSR|S_IXUSR) == -1) { throw new DlAbortEx(EX_MAKE_DIR, path.c_str(), strerror(errno)); } } if(recursive) { for(Files::const_iterator itr = files.begin(); itr != files.end(); itr++) { (*itr)->createDir(path, true); } } } void Directory::addFile(Directory* directory) { files.push_back(directory); }