Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,851 questions

51,772 answers

573 users

How to recursively count all files with specific extension from directory include subdirectories in C

1 Answer

0 votes
#include <stdio.h>
#include <dirent.h>
#include <string.h>

int countAllFilesWithSpecificExtension(char *mainpath) {
    char path[1024];
    struct dirent *drnt;
    DIR *dir = opendir(mainpath);
	static int i = 0;

	if (!dir)
        return 0;
    
	while ((drnt = readdir(dir)) != NULL) {
        if (strcmp(drnt->d_name, ".") != 0 && strcmp(drnt->d_name, "..") != 0) {
			if (strcmp(drnt->d_name + strlen(drnt->d_name) - 4, ".php") == 0) {
				i++;
			}
			
            strcpy(path, mainpath);
            strcat(path, "/");
            strcat(path, drnt->d_name);

            countAllFilesWithSpecificExtension(path);
        }
    }

    closedir(dir);
	
	return i;
}
  
int main(int argc, char **argv) 
{ 
    int total = countAllFilesWithSpecificExtension("c:\\xampp\\htdocs\\allonpage.com");
	
	printf("%d\n", total);

	return 0;
}
    
/*
   
run:
    
16418
 
*/

 



answered Jan 22, 2019 by avibootz
...