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 }
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 ); }
void delete_folder_tree(const char *dirname) { #if (CC_TARGET_PLATFORM != CC_PLATFORM_WIN32) DIR *dir; struct dirent *entry; char path[PATH_MAX]; if (path == NULL) { CCLOG("Out of memory error\n"); return; } dir = opendir(dirname); if (dir == NULL) { CCLOG("Error opendir()"); return; } while ((entry = readdir(dir)) != NULL) { if (strcmp(entry->d_name, ".") && strcmp(entry->d_name, "..")) { snprintf(path, (size_t) PATH_MAX, "%s/%s", dirname, entry->d_name); if (entry->d_type == DT_DIR) { delete_folder_tree(path); } else { unlink(path); } } } closedir(dir); CCLOG("(not really) Deleting: %s\n", dirname); return; #endif }
void AssetsUpdateLayer::removeDownloadedDir() { CCLOG("version remove download dir"); #if (CC_TARGET_PLATFORM != CC_PLATFORM_WIN32) DIR *pDir = NULL; pDir = opendir (m_pathToSave.c_str()); if (pDir) { //char command[128]; //sprintf(command, "rm -rf %s", m_pathToSave.c_str()); //system(command); delete_folder_tree(m_pathToSave.c_str()); } #else #endif }
static void unmount_and_close_device( void ) { int rc; rtems_resource_snapshot now; bool are_resources_freed; delete_folder_tree( MOUNT_DIR ); rc = unmount( MOUNT_DIR ); rtems_test_assert( rc == 0 ); are_resources_freed = rtems_resource_snapshot_check( &before_mount ); if ( !are_resources_freed ) rtems_resource_snapshot_take( &now ); rtems_test_assert( are_resources_freed ); }