linux C/CXX获取文件夹大小.

luozhi9 2009-08-19 05:18:47
linux C/CXX获取文件夹大小.

linux系统中,怎么去计算一个文件夹有多大??
...全文
1015 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
linsen_519 2010-10-26
  • 打赏
  • 举报
回复
终端下命令行输入:

find /PATH -name "FILENAME" -exec ls -l {} \; | awk '{if(NR!=1) print $5}' | awk '{x=x+$1} END {print "total: "x}'

/PATH是目录的路径
/FILENAME是目录的名称
VC_ZSY 2010-10-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 fallening 的回复:]

ls -Rl folder_name
[/Quote]

学习了~~关键是该命令在uclinux下间接实现了linux下的du
fallening 2009-08-21
  • 打赏
  • 举报
回复
ls -Rl folder_name
luozhi9 2009-08-21
  • 打赏
  • 举报
回复
5楼的方法应该差不多吧。。试试。。。。。
bxhxb 2009-08-19
  • 打赏
  • 举报
回复
是4楼,我就晕吧~~~
bxhxb 2009-08-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wind_runner 的回复:]
学习了~~~~

[/Quote]

哈哈,我的第一反应和3楼一样,然后才想到应该是要写系统调用的。
superbtl 2009-08-19
  • 打赏
  • 举报
回复
伪代码
#include <sys/types.h>
#include <dirent.h>
#include <stdio.h>
#include <sys/stat.h>
//#define __ourhdr_h
//#include "ourhdr.h"
long FileSize = 0;
int main(int argc,char* argv[])
{
CountFilesize("/home/yourfile");
}
long CountFilesize(char *path)
{
DIR *dp;
struct dirent * dirp;
if ((dp=opendir(path))==NULL)
{
printf("cant open %s",path);
return 0;
}
while((dirp=readdir(dp))!=NULL)
{
struct stat buf;
if (lstat(dirp->d_name, &buf) < 0)
{
printf("lstat error");
}
if (S_ISDIR(buf.st_mode)) //是目录
{
CountFilesize(dirp->d_name);
}
else
{
int iresult;
iresult = _stat(__FILE__,&buf);
if(iresult == 0)
{
FileSize+= buf.st_size;
}

}
}
closedir(dp);
}
redlives 2009-08-19
  • 打赏
  • 举报
回复
du命令吧,
Wind_Runner 2009-08-19
  • 打赏
  • 举报
回复
学习了~~~~
luozhi9 2009-08-19
  • 打赏
  • 举报
回复
计算一下目录的大小,此目录中不包括目录....

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧