4 #ifndef RUDIMENTS_DIRECTORY_H
5 #define RUDIMENTS_DIRECTORY_H
7 #include <rudiments/private/directoryincludes.h>
9 #ifdef RUDIMENTS_NAMESPACE
13 class directoryprivate;
26 bool open(
const char *path);
37 uint64_t getChildCount();
44 char *getChildName(uint64_t index);
48 int64_t maxFileNameLength();
53 int64_t maxPathLength();
59 bool canAccessLongFileNames();
62 static bool create(
const char *path, mode_t perms);
65 static bool remove(
const char *path);
72 static char *getCurrentWorkingDirectory();
75 static bool changeDirectory(
const char *path);
78 static bool changeRoot(
const char *path);
82 static int64_t maxFileNameLength(
const char *pathname);
87 static int64_t maxPathLength(
const char *pathname);
93 static bool canAccessLongFileNames(
const char *pathname);
98 static bool needsMutex();
103 static void setMutex(
mutex *mtx);
105 #include <rudiments/private/directory.h>
108 #ifdef RUDIMENTS_NAMESPACE