77 lines
1.2 KiB
C++
77 lines
1.2 KiB
C++
#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;
|
|
}
|