#include "pidir.h" PIDir::PIDir(const PIString & dir) { path_ = dir.stdString(); dir_ = 0; open(); } bool PIDir::operator==(const PIDir & d) const { return true; } bool PIDir::open() { if (dir_ != 0) if (!close()) return false; dir_ = opendir(path_.c_str()); return (dir_ != 0); } bool PIDir::close() { if (dir_ == 0) return true; if (closedir(dir_) == 0) { dir_ = 0; return true; } return false; } PIString PIDir::absolutePath() { //di; return PIString(); } PIDir PIDir::current() { char rc[1024]; if (getcwd(rc, 1024) == 0) return PIString(); return PIDir(rc); } PIDir PIDir::home() { return PIDir(getenv("HOME")); } PIDir PIDir::temporary() { char * rc; rc = tmpnam(0); PIString s(rc); return PIDir(s.left(s.findLast(PIDir::separator))); } bool PIDir::mkDir(const PIString & path) { string s = path.stdString(); int ret = mkdir(s.c_str(), 16877); if (ret == 0) return true; printf("[PIDir] mkDir(\"%s\") error: %s\n", s.c_str(), strerror(errno)); return false; } bool PIDir::rmDir(const PIString & path) { string s = path.stdString(); int ret = rmdir(s.c_str()); if (ret == 0) return true; printf("[PIDir] rmDir(\"%s\") error: %s\n", s.c_str(), strerror(errno)); return false; }