// name: find_and_create_directory() // // author: jonas.sundstrom@kirilla.com // license: public domain // target: BeOS // compile: g++ main.cpp -lbe #include #include #include // find_directory() + directory_which constants #include // create_directory() #include status_t find_and_create_directory ( directory_which a_which, BVolume * a_volume = NULL, const char * a_path = NULL ); int main() { status_t status = B_OK; status = find_and_create_directory(B_USER_SETTINGS_DIRECTORY, NULL, "Myself/MyApplication"); if (status != B_OK) { printf("create_directory(\"Kirilla/Snapshots\") %s\n", strerror(status)); exit (-1); } } status_t find_and_create_directory(directory_which a_which, BVolume * a_volume, const char * a_path) { status_t status = B_OK; BPath path; mode_t mask = 0; status = find_directory (a_which, & path, true, a_volume); if (status != B_OK) return status; path.Append(a_path); mask = umask (0); umask (mask); status = create_directory (path.Path(), mask); return status; }