本文共 1055 字,大约阅读时间需要 3 分钟。
第一种方法:
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;
转载地址:http://kwexi.baihongyu.com/