C语言实现查看一个文件夹目录里面所有内容的大小功能
2018-03-28 15:32
627 查看
第一种方法:
DIR *d;
struct dirent *de;
struct stat buf;
INT32 exists;
INT64 total_size;
d = opendir(".");
if (d == NULL)
{
perror("prsize");
exit(1);
}
total_size = 0;
for (de = readdir(d); de != NULL; de = readdir(d))
{
exists = stat(de->d_name, &buf);
if (exists < 0)
{
fprintf(stderr, "Couldn't stat %s\n", de->d_name);
}
else
{
total_size += buf.st_size;
}
}
closedir(d);
printf("%d\n", total_size);
第二中方法:
FILE *fp;
CHAR databuff[1024] = {0};
CHAR *pstr = NULL;
INT32 file_size = -1;
sprintf(databuff, "du -sh %s/%s/compress_%s/",WORK_DIR_PATH,LOG_DIR_PATH,logname);
printf("\n**************aaaaaaaaaaaaaaaaaaaaaaaaaa***********\n");
fp = popen(databuff, "r");
if (fp == NULL)
{
pclose(fp);
return -1;
}
printf("\n**************1bbbbbbbbbbbbbbbbbbbbbb***********\n");
if (fgets(databuff, sizeof(databuff), fp) != NULL && !(ferror(fp)))
{
pstr = strstr(databuff, "M");
if (pstr != NULL)
{
file_size = (int)(atoi(databuff) * 1);
}
}
else
{
return -1;
}
pclose(fp);
printf("\n**************=%04d***%04d K******\n",file_size,file_size/1024);
return file_size;
DIR *d;
struct dirent *de;
struct stat buf;
INT32 exists;
INT64 total_size;
d = opendir(".");
if (d == NULL)
{
perror("prsize");
exit(1);
}
total_size = 0;
for (de = readdir(d); de != NULL; de = readdir(d))
{
exists = stat(de->d_name, &buf);
if (exists < 0)
{
fprintf(stderr, "Couldn't stat %s\n", de->d_name);
}
else
{
total_size += buf.st_size;
}
}
closedir(d);
printf("%d\n", total_size);
第二中方法:
FILE *fp;
CHAR databuff[1024] = {0};
CHAR *pstr = NULL;
INT32 file_size = -1;
sprintf(databuff, "du -sh %s/%s/compress_%s/",WORK_DIR_PATH,LOG_DIR_PATH,logname);
printf("\n**************aaaaaaaaaaaaaaaaaaaaaaaaaa***********\n");
fp = popen(databuff, "r");
if (fp == NULL)
{
pclose(fp);
return -1;
}
printf("\n**************1bbbbbbbbbbbbbbbbbbbbbb***********\n");
if (fgets(databuff, sizeof(databuff), fp) != NULL && !(ferror(fp)))
{
pstr = strstr(databuff, "M");
if (pstr != NULL)
{
file_size = (int)(atoi(databuff) * 1);
}
}
else
{
return -1;
}
pclose(fp);
printf("\n**************=%04d***%04d K******\n",file_size,file_size/1024);
return file_size;
相关文章推荐
- C语言实现的计算一个文件下的所有文件的总大小(还有BUG,如果文件夹下面还有文件家就有问题,等待更新)
- Linux下c语言实现将一个目录下的所有文件和目录复制到另一个目录下
- vc++ 实现dir一个目录中所有文件功能
- linux查看目录大小 linux统计目录大小并排序 查看目录下所有一级子目录文件夹大小 du -h --max-depth=1 |grep []
- 在linux下用C语言实现递归查看某个目录中的所有文件
- vc++ 实现dir一个目录中所有文件功能
- 通过IO流讲一个文件里面的内容读到另外一个文件里面(文件复制功能的实现)
- Linux:centos释放缓存,查看磁盘空间大小,xxx文件夹, 查看文件夹大小,查看剩余内存,查看xxx软件位置,统计某文件夹,统计某文件夹下目录数量,查看文件夹大小,给文件夹下所有的文件赋值权限
- du 使用详解 linux查看目录大小 linux统计目录大小并排序 查看目录下所有一级子目录文件夹大小 du -h --max-depth=1 |grep [
- Java新建目录、新建文件、删除文件、删除文件夹、删除文件夹里面的所有文件、复制整个文件夹内容
- c#将一个文件夹及其里面的所有内容(文件和文件夹)复制到指定路径
- 采用多线程和生产者消费者模式来实现对于一个目录以及所有子目录下的文件内容的搜索,打印出包含指定关键字的行.
- java递归实现复制一个文件夹下所有文件的功能
- python2.7里边目录python列出文件夹里面的所有内容
- C语言实现的统计php代码行数功能源码(支持文件夹、多目录)
- 实现一个静态方法将指定文件夹下面的所有内容copy到目标文件夹下面
- du 使用详解 linux查看目录大小 linux统计目录大小并排序 查看目录下所有一级子目录文件夹大小 du -h --max-depth=1 |grep [ 发
- 如何查看Linux下面某一个目录下所有的隐藏文件和文件夹
- 在java中高效复制一个文件夹里面所有的内容
- 将SVN仓库里面的一个文件夹的所有内容复制到另一个文件夹下