#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
#include <time.h>
#define PATHMAX 1024
void getdir(char *path);
void searchdir(char *path);
void statlines(char *filepath);
int total = 0;
int main(void)
{
char dirpath[PATHMAX];
clock_t tick_start,tick_end;
double t;
tick_start=clock();
getdir(dirpath);
searchdir(dirpath);
tick_end=clock();
float dtime= (float)(tick_end-tick_start)/1000/1000;
printf( "Total time used:%f second\n ",dtime);
return 0;
}
void getdir(char *path)
{
int i = 0, ch;
printf("Please input the full path of the catalog:");
while (i < PATHMAX && (ch = getchar()) != '\n')
path[i++] = ch;
path[i] = '\0';
}
void searchdir(char *path)
{
DIR *dp;
struct dirent *dmsg;
int i=0;
char addpath[PATHMAX] = {'\0'}, *tmpstr;
if ((dp = opendir(path)) == NULL)
{
perror("opendir");
exit(-1);
}
while ((dmsg = readdir(dp)) != NULL)
{
if (!strcmp(dmsg->d_name, ".") || !strcmp(dmsg->d_name, ".."))
continue;
strcpy(addpath, path);
strcat(addpath, "/");
strcat(addpath, dmsg->d_name);
//printf("....%s....",addpath);
if (dmsg->d_type == 4)
searchdir(addpath);
else if (dmsg->d_type == 8)
{
if ((tmpstr = strrchr(dmsg->d_name, '.')) == NULL)
continue;
// if (!strcmp(tmpstr, ".c") || !strcmp(tmpstr, ".h"))
// statlines(addpath);
}
}
closedir(dp);
}
遍历linux目录所需的毫秒
最新推荐文章于 2024-09-25 15:20:18 发布