bool isDirectory(const char *filename) { const char *filenameWithoutTailingSlash = dropTrailingSlash(filename); struct stat s; bool isDirectory = stat(filenameWithoutTailingSlash, &s) == 0 && (s.st_mode & S_IFDIR); delete[] filenameWithoutTailingSlash; return isDirectory; }
bool fileExists(const char *filename) { const char *filenameWithoutTailingSlash = dropTrailingSlash(filename); struct stat s; bool fileExists = stat(filenameWithoutTailingSlash, &s) == 0; delete[] filenameWithoutTailingSlash; return fileExists; }
bool npfsAPI::fileExists(const std::string& path) { const char *filenameWithoutTailingSlash = dropTrailingSlash(path.c_str()); struct stat s; bool fileExists = stat(filenameWithoutTailingSlash, &s) == 0; delete[] filenameWithoutTailingSlash; return fileExists; }
bool npfsAPI::isDirectory(const std::string& path) { const char *filenameWithoutTailingSlash = dropTrailingSlash(path.c_str()); struct stat s; bool isDirectory = stat(filenameWithoutTailingSlash, &s) == 0 && (s.st_mode & S_IFDIR); delete[] filenameWithoutTailingSlash; return isDirectory; }
/** * get file size */ int getFileSize(const char* fname) { struct stat file_status; if(stat(dropTrailingSlash(fname), &file_status) != 0){ // file not found return 0; } else { return file_status.st_size; } }
bool createDirectory(const char *filename) { const char *filenameWithoutTrailingSlash = dropTrailingSlash(filename); std::string filenameToSplit(filenameWithoutTrailingSlash); bool lastSucceeded = false; bool first = true; size_t lastSlash = -1; while (first || lastSlash != std::string::npos) { first = false; lastSlash = filenameToSplit.find(PLATFORM_PATH_SEPARATOR_STRING, lastSlash + 1); std::string substr = lastSlash == std::string::npos ? filenameToSplit : filenameToSplit.substr(0, lastSlash + 1); const char *subdir = substr.c_str(); if (!fileExists(subdir)) { lastSucceeded = mkdir(subdir, DEFAULT_FOLDER_PERMISSIONS) == 0; } } delete[] filenameWithoutTrailingSlash; return lastSucceeded; }