00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef ARCHON_UTILITIES_FILE_H
00021 #define ARCHON_UTILITIES_FILE_H
00022
00023 #include <string>
00024 #include <vector>
00025
00026 #include <archon/util/exception.H>
00027
00028 namespace Archon
00029 {
00030 namespace Utilities
00031 {
00032 namespace File
00033 {
00034 using namespace std;
00035
00040 string getCWD();
00041
00042 string getHomeDir();
00043
00044 void makeDir(string path);
00045
00046 vector<string> getDirNames(string dirPath);
00047
00048 struct Stat
00049 {
00050 enum Type
00051 {
00052 type_regular,
00053 type_directory,
00054 type_characterDevice,
00055 type_blockDevice,
00056 type_fifo,
00057 type_symbolicLink,
00058 type_socket,
00059 type_other
00060 };
00061
00062 Type getType() const { return type; }
00063
00064 Stat(string path);
00065
00066 private:
00067 Type type;
00068 };
00069
00070 bool isRegular(string path);
00071 bool isDir(string path);
00072 bool isSymbolicLink(string path);
00073
00084 string nameOf(string filePath);
00085
00097 string suffixOf(string filePath);
00098 }
00099 }
00100 }
00101
00102 #endif // ARCHON_UTILITIES_FILE_H