Может ли кто-нибудь сказать мне, правильно ли я сделал это, чтобы найти количество файлов и поддиректорий в каталоге? Кроме того, как я могу подтвердить это в терминале?C: Как подсчитать количество файлов и подкаталогов в каталоге
main(int n, char *path[]){
//count the number of files and subdirectories
int fileCount = 0;
int dirCount = 0;
DIR *dp;
struct dirent *dir;
int i;
for(i = 1; i < n; i++){
dp = opendir(path[i]);
if(dp==NULL)
continue;
while((dir = readdir(dp)) != NULL){
if(dir->d_type == DT_REG){
fileCount++;
}
if(dir->d_type == DT_DIR)
dirCount++;
}
printf("%s: file count is: %d and dir count is: %d\n",path[i], fileCount, dirCoun$
}
// printf("file count is: %d and dir count is: %d", fileCount, dirCount);
closedir(dp);
}
Вы можете проверить его, фактически перейдя в один из каталогов и указав все файлы там. Не забудьте также указывать скрытые файлы и каталоги, так как ваша программа тоже их подсчитывает (включая каталоги '.' И '..'). –
@JoachimPileborg, но есть ли команда, которая будет перечислять количество файлов или поддиректорий каталога? Я думаю, что мой код неправильный, потому что, когда я фактически показываю файлы, мой счет кажется коротким ... –
Если вы на деле. Linux или OSX, список с помощью 'ls -Fa', в котором будут показаны скрытые файлы, а также их категории (обычные файлы, каталоги, каналы и т. д.). Вы также можете сделать это, например. 'find/path/to/dir -maxdepth 1 -type d -o-type f | wc -l' считать все обычные файлы и каталоги в '/ path/to/dir'. –