首页 > 代码库 > linux遍历目录源代码
linux遍历目录源代码
<pre code_snippet_id="1622396" snippet_file_name="blog_20160324_1_744516" name="code" class="cpp">遍历目录获取整个目录的占用空间:
uint64_t dir_space(char *path) { int ret = 0; uint64_t space = 0; char cur_dir[PATH_MAX + 1] = {0}; DIR *dir = NULL; struct dirent *ent = NULL; if (NULL == path) { return 0; } dir = opendir(path); if (NULL == dir) { return 0; } if (NULL == getcwd(cur_dir, PATH_MAX)) { closedir(dir); return 0; } chdir(path); printf("current dir is %s\n", path); ent = readdir(dir); while (NULL != ent) { if (strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0) { space += 4096; goto GOON; } if (ent->d_type == DT_DIR) { space += 4096; space += dir_space(ent->d_name); } else { struct stat st; lstat(ent->d_name, &st); space += st.st_size; } GOON: ent = readdir(dir); } chdir(cur_dir); closedir(dir); printf("out of dir %s\n", path); return space; }
linux遍历目录源代码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。