本文整理汇总了C++中path_is_directory函数的典型用法代码示例。如果您正苦于以下问题:C++ path_is_directory函数的具体用法?C++ path_is_directory怎么用?C++ path_is_directory使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了path_is_directory函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: mkdir_norecurse
/**
* path_mkdir_norecurse:
* @dir : directory
*
* Create directory on filesystem.
*
* Returns: true (1) if directory could be created, otherwise false (0).
**/
bool mkdir_norecurse(const char *dir)
{
int ret;
#if defined(_WIN32)
ret = _mkdir(dir);
#elif defined(IOS)
ret = mkdir(dir, 0755);
#elif defined(VITA) || defined(PSP)
ret = sceIoMkdir(dir, 0777);
#else
ret = mkdir(dir, 0750);
#endif
/* Don't treat this as an error. */
#if defined(VITA)
if ((ret == SCE_ERROR_ERRNO_EEXIST) && path_is_directory(dir))
ret = 0;
#elif defined(PSP)
if ((ret == -1) && path_is_directory(dir))
ret = 0;
#else
if (ret < 0 && errno == EEXIST && path_is_directory(dir))
ret = 0;
#endif
if (ret < 0)
printf("mkdir(%s) error: %s.\n", dir, strerror(errno));
return ret == 0;
}
开发者ID:vincentsaluzzo,项目名称:RetroArch,代码行数:35,代码来源:retro_stat.c
示例2: retro_dirent_is_dir
/**
*
* retro_dirent_is_dir:
* @rdir : pointer to the directory entry.
* @path : path to the directory entry.
*
* Is the directory listing entry a directory?
*
* Returns: true if directory listing entry is
* a directory, false if not.
*/
bool retro_dirent_is_dir(struct RDIR *rdir, const char *path)
{
#if defined(_WIN32)
const WIN32_FIND_DATA *entry = (const WIN32_FIND_DATA*)&rdir->entry;
return entry->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
#elif defined(PSP) || defined(VITA)
const SceIoDirent *entry = (const SceIoDirent*)&rdir->entry;
#if defined(PSP)
return (entry->d_stat.st_attr & FIO_SO_IFDIR) == FIO_SO_IFDIR;
#elif defined(VITA)
return PSP2_S_ISDIR(entry->d_stat.st_mode);
#endif
#elif defined(__CELLOS_LV2__)
CellFsDirent *entry = (CellFsDirent*)&rdir->entry;
return (entry->d_type == CELL_FS_TYPE_DIRECTORY);
#elif defined(DT_DIR)
const struct dirent *entry = (const struct dirent*)rdir->entry;
if (entry->d_type == DT_DIR)
return true;
/* This can happen on certain file systems. */
if (entry->d_type == DT_UNKNOWN || entry->d_type == DT_LNK)
return path_is_directory(path);
return false;
#else
/* dirent struct doesn't have d_type, do it the slow way ... */
return path_is_directory(path);
#endif
}
开发者ID:ColinKinloch,项目名称:RetroArch,代码行数:39,代码来源:retro_dirent.c
示例3: opendir
bool FileUtilsExtension::delete_folder_tree(const std::string& directory_name) {
#ifndef WIN32
DIR* dp;
struct dirent* ep;
dp = opendir(directory_name.c_str());
while ((ep = readdir(dp)) != NULL) {
if (std::string(ep->d_name) == "." || std::string(ep->d_name) == "..") continue;
std::string p_buf = directory_name + "/" + ep->d_name; //"%s/%s"
if (path_is_directory(p_buf))
delete_folder_tree(p_buf);
else
unlink(p_buf.c_str());
}
closedir(dp);
return (0 == rmdir(directory_name.c_str()));
#else
BOOL ret = RemoveDirectory((LPCWSTR)directory_name.c_str());
if (!ret) {
cocos2d::log("FileUtilsExtension::delete_folder_tree failed with error %ld", GetLastError());
}
return !!ret;
#endif
}
开发者ID:darklinden,项目名称:cocos2dx-load-3d,代码行数:28,代码来源:FileUtilsExtension.cpp
示例4: dirent_is_directory
static bool dirent_is_directory(const char *path,
const struct dirent *entry)
{
#if defined(PSP)
return (entry->d_stat.st_attr & FIO_SO_IFDIR) == FIO_SO_IFDIR;
#elif defined(DT_DIR)
if (entry->d_type == DT_DIR)
return true;
else if (entry->d_type == DT_UNKNOWN /* This can happen on certain file systems. */
|| entry->d_type == DT_LNK)
return path_is_directory(path);
return false;
#else /* dirent struct doesn't have d_type, do it the slow way ... */
return path_is_directory(path);
#endif
}
开发者ID:stefan-gr,项目名称:RetroArch,代码行数:16,代码来源:dir_list.c
示例5: path_append
bool CONFIG::get_config_include_path(POOL_MEM &full_path, const char *config_dir)
{
bool found = false;
if (m_config_include_dir) {
/*
* Set full_path to the initial part of the include path,
* so it can be used as result, even on errors.
* On success, full_path will be overwritten with the full path.
*/
full_path.strcpy(config_dir);
path_append(full_path, m_config_include_dir);
if (path_is_directory(full_path)) {
m_config_dir = bstrdup(config_dir);
/*
* Set full_path to wildcard path.
*/
if (get_path_of_resource(full_path, NULL, NULL, NULL, true)) {
m_use_config_include_dir = true;
found = true;
}
}
}
return found;
}
开发者ID:razvip91,项目名称:bareos,代码行数:26,代码来源:parse_conf.c
示例6: create_directories_recursivey
static bool create_directories_recursivey(const string& path)
{
if(path_is_directory(path)) {
/* Directory already exists, nothing to do. */
return true;
}
if(path_exists(path)) {
/* File exists and it's not a directory. */
return false;
}
string parent = path_dirname(path);
if(parent.size() > 0 && parent != path) {
if(!create_directories_recursivey(parent)) {
return false;
}
}
#ifdef _WIN32
wstring path_wc = string_to_wstring(path);
return _wmkdir(path_wc.c_str()) == 0;
#else
return mkdir(path.c_str(), 0777) == 0;
#endif
}
开发者ID:UPBGE,项目名称:blender,代码行数:25,代码来源:util_path.cpp
示例7: delete_folder_tree
static void delete_folder_tree( const char *directory_name )
{
DIR *dp;
struct dirent *ep;
char p_buf[1024] = {0};
int rc = 0;
dp = opendir( directory_name );
rtems_test_assert( dp != NULL );
while ( ( ep = readdir( dp ) ) != NULL && rc == 0 ) {
if ( 0 != strcmp( ".", ep->d_name )
&& 0 != strcmp( "..", ep->d_name ) ) {
snprintf( p_buf, sizeof( p_buf ), "%s/%s", directory_name, ep->d_name );
if ( path_is_directory( p_buf ) ) {
delete_folder_tree( p_buf );
rc = rmdir( p_buf );
rtems_test_assert( rc == 0 );
rewinddir( dp );
} else {
rc = unlink( p_buf );
rtems_test_assert( rc == 0 );
rewinddir( dp );
}
}
}
rc = closedir( dp );
rtems_test_assert( rc == 0 );
}
开发者ID:chch1028,项目名称:rtems,代码行数:32,代码来源:init.c
示例8: Open
bool ZipArchive::Open(const char* path)
{
if (path_is_directory(path))
return false;
zip = zip_open(path, 0, NULL);
return (zip != NULL);
}
开发者ID:twinaphex,项目名称:reicast-emulator,代码行数:7,代码来源:ZipArchive.cpp
示例9: check_defaults_dir_create_dir
static void check_defaults_dir_create_dir(const char *path)
{
char new_path[PATH_MAX_LENGTH];
fill_pathname_expand_special(new_path,
path, sizeof(new_path));
if (path_is_directory(new_path))
return;
path_mkdir(new_path);
}
开发者ID:alerinoreis,项目名称:RetroArch,代码行数:10,代码来源:task_content.c
示例10: set_paths_redirect
void set_paths_redirect(const char *path)
{
global_t *global = global_get_ptr();
settings_t *settings = config_get_ptr();
/* per-core saves: append the library_name to the save location */
if(global->system.info.library_name && strcmp(global->system.info.library_name,"No Core") && settings->sort_savefiles_enable)
{
strlcpy(orig_savefile_dir,global->savefile_dir,sizeof(global->savefile_dir));
fill_pathname_dir(global->savefile_dir,global->savefile_dir,global->system.info.library_name,sizeof(global->savefile_dir));
// if path doesn't exist try to create it, if everything fails revert to the original path
if(!path_is_directory(global->savefile_dir))
if(!path_mkdir(global->savefile_dir))
strlcpy(global->savefile_dir,orig_savefile_dir,sizeof(global->savefile_dir));
}
/* per-core states: append the library_name to the save location */
if (global->system.info.library_name && strcmp(global->system.info.library_name,"No Core") && settings->sort_savestates_enable)
{
strlcpy(orig_savestate_dir,global->savestate_dir,sizeof(global->savestate_dir));
fill_pathname_dir(global->savestate_dir,global->savestate_dir,global->system.info.library_name,sizeof(global->savestate_dir));
// if path doesn't exist try to create it, if everything fails revert to the original path
if(!path_is_directory(global->savestate_dir))
if(!path_mkdir(global->savestate_dir))
strlcpy(global->savestate_dir,orig_savestate_dir,sizeof(global->savestate_dir));
}
if(path_is_directory(global->savefile_dir))
strlcpy(global->savefile_name,global->savefile_dir,sizeof(global->savefile_dir));
if(path_is_directory(global->savestate_dir))
strlcpy(global->savestate_name,global->savestate_dir,sizeof(global->savestate_dir));
if (path_is_directory(global->savefile_name))
{
fill_pathname_dir(global->savefile_name, global->basename,
".srm", sizeof(global->savefile_name));
RARCH_LOG("Redirecting save file to \"%s\".\n", global->savefile_name);
}
if (path_is_directory(global->savestate_name))
{
fill_pathname_dir(global->savestate_name, global->basename,
".state", sizeof(global->savestate_name));
RARCH_LOG("Redirecting save state to \"%s\".\n", global->savestate_name);
}
if (path_is_directory(global->cheatfile_name))
{
fill_pathname_dir(global->cheatfile_name, global->basename,
".state", sizeof(global->cheatfile_name));
RARCH_LOG("Redirecting cheat file to \"%s\".\n", global->cheatfile_name);
}
}
开发者ID:PCGeekBrain,项目名称:RetroArch,代码行数:56,代码来源:retroarch.c
示例11: rarch_make_dir
void rarch_make_dir(const char *x, const char *name)
{
RARCH_LOG("Checking directory name %s [%s]\n", name, x);
if (strlen(x) > 0)
{
if (!path_is_directory(x))
{
RARCH_WARN("Directory \"%s\" does not exists, creating\n", x);
if (mkdir((x), 0777) != 0)
RARCH_ERR("Could not create directory \"%s\"\n", x);
}
}
}
开发者ID:MoonlightStudios,项目名称:RetroArch,代码行数:13,代码来源:frontend.c
示例12: path_mkdir_norecurse
static bool path_mkdir_norecurse(const char *dir)
{
int ret;
#if defined(_WIN32)
ret = _mkdir(dir);
#elif defined(IOS)
ret = mkdir(dir, 0755);
#else
ret = mkdir(dir, 0750);
#endif
/* Don't treat this as an error. */
if (ret < 0 && errno == EEXIST && path_is_directory(dir))
ret = 0;
if (ret < 0)
RARCH_ERR("mkdir(%s) error: %s.\n", dir, strerror(errno));
return ret == 0;
}
开发者ID:SuperrSonic,项目名称:RA-SS,代码行数:17,代码来源:file_path.c
示例13: set_special_paths
static void set_special_paths(char **argv, unsigned num_content)
{
unsigned i;
union string_list_elem_attr attr;
global_t *global = global_get_ptr();
settings_t *settings = config_get_ptr();
/* First content file is the significant one. */
set_basename(argv[0]);
global->subsystem_fullpaths = string_list_new();
rarch_assert(global->subsystem_fullpaths);
attr.i = 0;
for (i = 0; i < num_content; i++)
string_list_append(global->subsystem_fullpaths, argv[i], attr);
/* We defer SRAM path updates until we can resolve it.
* It is more complicated for special content types. */
if (!global->has_set.state_path)
fill_pathname_noext(global->name.savestate, global->name.base,
".state", sizeof(global->name.savestate));
if (path_is_directory(global->name.savestate))
{
fill_pathname_dir(global->name.savestate, global->name.base,
".state", sizeof(global->name.savestate));
RARCH_LOG("%s \"%s\".\n",
msg_hash_to_str(MSG_REDIRECTING_SAVESTATE_TO),
global->name.savestate);
}
/* If this is already set,
* do not overwrite it as this was initialized before in
* a menu or otherwise. */
if (settings->system_directory[0] == '\0')
{
RARCH_WARN("SYSTEM DIR is empty, assume CONTENT DIR %s\n",argv[0]);
/*fill_pathname_basedir(settings->system_directory, argv[0],
sizeof(settings->system_directory));*/
}
}
开发者ID:blackman91,项目名称:RetroArch,代码行数:45,代码来源:retroarch.c
示例14: path_files_md5_hash_recursive
static void path_files_md5_hash_recursive(MD5Hash& hash, const string& dir)
{
if(path_exists(dir)) {
directory_iterator it(dir), it_end;
for(; it != it_end; ++it) {
if(path_is_directory(it->path())) {
path_files_md5_hash_recursive(hash, it->path());
}
else {
string filepath = it->path();
hash.append((const uint8_t*)filepath.c_str(), filepath.size());
hash.append_file(filepath);
}
}
}
}
开发者ID:UPBGE,项目名称:blender,代码行数:18,代码来源:util_path.cpp
示例15: get_config_file
bool CONFIG::get_config_file(POOL_MEM &full_path, const char *config_dir, const char *config_filename)
{
bool found = false;
if (!path_is_directory(config_dir)) {
return false;
}
if (config_filename) {
full_path.strcpy(config_dir);
if (path_append(full_path, config_filename)) {
if (path_exists(full_path)) {
m_config_dir = bstrdup(config_dir);
found = true;
}
}
}
return found;
}
开发者ID:razvip91,项目名称:bareos,代码行数:20,代码来源:parse_conf.c
示例16: set_special_paths
static void set_special_paths(char **argv, unsigned num_content)
{
unsigned i;
union string_list_elem_attr attr;
global_t *global = global_get_ptr();
settings_t *settings = config_get_ptr();
/* First content file is the significant one. */
set_basename(argv[0]);
global->subsystem_fullpaths = string_list_new();
rarch_assert(global->subsystem_fullpaths);
attr.i = 0;
for (i = 0; i < num_content; i++)
string_list_append(global->subsystem_fullpaths, argv[i], attr);
/* We defer SRAM path updates until we can resolve it.
* It is more complicated for special content types. */
if (!global->has_set_state_path)
fill_pathname_noext(global->savestate_name, global->basename,
".state", sizeof(global->savestate_name));
if (path_is_directory(global->savestate_name))
{
fill_pathname_dir(global->savestate_name, global->basename,
".state", sizeof(global->savestate_name));
RARCH_LOG("Redirecting save state to \"%s\".\n",
global->savestate_name);
}
/* If this is already set,
* do not overwrite it as this was initialized before in
* a menu or otherwise. */
if (!*settings->system_directory)
fill_pathname_basedir(settings->system_directory, argv[0],
sizeof(settings->system_directory));
}
开发者ID:PCGeekBrain,项目名称:RetroArch,代码行数:40,代码来源:retroarch.c
示例17: path_mkdir
bool path_mkdir(const char *dir)
{
const char *target = NULL;
/* Use heap. Real chance of stack overflow if we recurse too hard. */
char *basedir = strdup(dir);
bool ret = true;
if (!basedir)
return false;
path_parent_dir(basedir);
if (!*basedir || !strcmp(basedir, dir))
{
ret = false;
goto end;
}
if (path_is_directory(basedir))
{
target = dir;
ret = path_mkdir_norecurse(dir);
}
else
{
target = basedir;
ret = path_mkdir(basedir);
if (ret)
{
target = dir;
ret = path_mkdir_norecurse(dir);
}
}
end:
if (target && !ret)
RARCH_ERR("Failed to create directory: \"%s\".\n", target);
free(basedir);
return ret;
}
开发者ID:SuperrSonic,项目名称:RA-SS,代码行数:39,代码来源:file_path.c
示例18: nk_wnd_file_picker
bool nk_wnd_file_picker(nk_menu_handle_t *nk, char* title, char* in, char* out, char* filter)
{
struct nk_panel layout;
struct nk_context *ctx = &nk->ctx;
const int id = NK_WND_FILE_PICKER;
int i = 0;
static file_list_t *drives = NULL;
static struct string_list *files = NULL;
settings_t *settings = config_get_ptr();
bool ret = false;
if (!drives)
{
drives = (file_list_t*)calloc(1, sizeof(file_list_t));
frontend_driver_parse_drive_list(drives, false);
}
if (!string_is_empty(in) && string_is_empty(path))
{
strlcpy(path, in, sizeof(path));
files = dir_list_new(path, filter, true, settings->bools.show_hidden_files, true, false);
}
if (!assets_loaded)
load_icons(nk);
if (nk_begin(ctx, title, nk_rect(10, 10, 500, 400),
NK_WINDOW_CLOSABLE|NK_WINDOW_MINIMIZABLE|NK_WINDOW_MOVABLE|
NK_WINDOW_BORDER))
{
nk_layout_row_dynamic(ctx, 30, 4);
if (drives->size == 0)
{
if(nk_button_image_label(ctx, icons.disk, "/",
NK_TEXT_CENTERED))
{
fill_pathname_join(path, "/",
"", sizeof(path));
files = dir_list_new(path, filter, true, settings->bools.show_hidden_files, true, false);
}
}
else
{
for (i = 0; i < drives->size; i++)
{
if(nk_button_image_label(ctx, icons.disk, drives->list[i].path,
NK_TEXT_CENTERED))
{
fill_pathname_join(path, drives->list[i].path,
"", sizeof(path));
files = dir_list_new(path, filter, true, settings->bools.show_hidden_files, true, false);
}
}
}
nk_layout_row_dynamic(ctx, 30, 1);
if (files)
{
for (i = 0; i < files->size; i++)
{
if (nk_button_image_label(ctx, path_is_directory(files->elems[i].data) ?
icons.folder : icons.file, path_basename(files->elems[i].data),
NK_TEXT_RIGHT))
{
strlcpy (path, files->elems[i].data, sizeof(path));
if (path_is_directory (path))
files = dir_list_new(path, filter, true, settings->bools.show_hidden_files, true, false);
}
}
}
nk_layout_row_dynamic(ctx, 30, 1);
{
if (nk_button_text(ctx, "OK", 2))
{
ret = true;
strlcpy(out, path, sizeof(path));
nk->window[NK_WND_FILE_PICKER].open = false;
path[0] = '\0';
}
}
}
/* sort the dir list with directories first */
dir_list_sort(files, true);
/* copy the path variable to out*/
/* save position and size to restore after context reset */
nk_wnd_set_state(nk, id, nk_window_get_position(ctx), nk_window_get_size(ctx));
nk_end(ctx);
return ret;
}
开发者ID:Alcaro,项目名称:RetroArch,代码行数:94,代码来源:nk_wnd_file_picker.c
示例19: check_defaults_dir_create_dir
static void check_defaults_dir_create_dir(const char *path)
{
if (path_is_directory(path))
return;
path_mkdir(path);
}
开发者ID:jwarby,项目名称:RetroArch,代码行数:6,代码来源:content.c
示例20: load_content_from_compressed_archive
static bool load_content_from_compressed_archive(
struct string_list *temporary_content,
struct retro_game_info *info, unsigned i,
struct string_list* additional_path_allocs,
bool need_fullpath, const char *path)
{
union string_list_elem_attr attributes;
ssize_t new_path_len;
char new_path[PATH_MAX_LENGTH];
char new_basedir[PATH_MAX_LENGTH];
bool ret = false;
settings_t *settings = config_get_ptr();
rarch_system_info_t *sys_info= NULL;
runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &sys_info);
if (sys_info && sys_info->info.block_extract)
return true;
if (!need_fullpath || !path_contains_compressed_file(path))
return true;
RARCH_LOG("Compressed file in case of need_fullpath."
" Now extracting to temporary directory.\n");
strlcpy(new_basedir, settings->cache_directory,
sizeof(new_basedir));
if (string_is_empty(new_basedir) || !path_is_directory(new_basedir))
{
RARCH_WARN("Tried extracting to cache directory, but "
"cache directory was not set or found. "
"Setting cache directory to directory "
"derived by basename...\n");
fill_pathname_basedir(new_basedir, path,
sizeof(new_basedir));
}
attributes.i = 0;
fill_pathname_join(new_path, new_basedir,
path_basename(path), sizeof(new_path));
ret = content_file_compressed_read(path, NULL, new_path, &new_path_len);
if (!ret || new_path_len < 0)
{
RARCH_ERR("%s \"%s\".\n",
msg_hash_to_str(MSG_COULD_NOT_READ_CONTENT_FILE),
path);
return false;
}
RARCH_LOG("New path is: [%s]\n", new_path);
string_list_append(additional_path_allocs, new_path, attributes);
info[i].path =
additional_path_allocs->elems[additional_path_allocs->size -1 ].data;
if (!string_list_append(temporary_content, new_path, attributes))
return false;
return true;
}
开发者ID:jwarby,项目名称:RetroArch,代码行数:62,代码来源:content.c
注:本文中的path_is_directory函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论