filcount.c
来自「国外网站上的一些精典的C程序」· C语言 代码 · 共 72 行
C
72 行
/*** FILCOUNT.C - counts directories and /or files in a directory**** public domain demo by Bob Stout*/#include <stdio.h>#include <string.h>#include "sniptype.h"#include "dirport.h"unsigned DirCount = 0, FileCount = 0;/*** Arguments: 1 - directory to search** 2 - search subdirectories: True_ or False_*/void do_dir(char *path, int recurse_flag){ char search[67], new[67]; DOSFileData ff; strcpy(search, path); if ('\\' != LAST_CHAR(search)) strcat(search, "\\"); strcat(search, "*.*"); if (Success_ == FIND_FIRST(search, _A_ANY, &ff)) do { if ('.' == *ff_name(&ff)) continue; if (ff_attr(&ff) & _A_SUBDIR) { DirCount++; if (recurse_flag) { strcpy(new, path); if ('\\' != LAST_CHAR(new)) strcat(new, "\\"); strcat(new, ff_name(&ff)); do_dir(new, recurse_flag); } } else FileCount++; } while (Success_ == FIND_NEXT(&ff));}/*** Simple recursive file/directory counter**** Usage: FILCOUNT [path_name] [{Y | N}]**** Notes: 1. If a path name isn't specified, the current directory is assumed** 2. Default recursion flag is False_** 3. Path must be specified in order to specify the recursion flag*/main(int argc, char *argv[]){ char *Dir ="."; Boolean_T recurse = False_; if (1 < argc) Dir = argv[1]; if (2 < argc) recurse = (NULL != strchr("Yy", *argv[2])); do_dir(Dir, recurse); printf("Counted: %d Directories and %d Files\n", DirCount, FileCount); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?