01.03.2011 - as a initial commit
This commit is contained in:
76
pidir.cpp
Normal file
76
pidir.cpp
Normal file
@@ -0,0 +1,76 @@
|
||||
#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;
|
||||
}
|
||||
Reference in New Issue
Block a user