版权声明 本站原创文章 由 萌叔 发表
转载请注明 萌叔 | http://vearne.cc
#include <iostream>
#include <sys/stat.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
using namespace std;
int is_regular_file(char * a){
	if(*a=='.'){
		return 0;
	}else{
		return 1;
	}
}
char* append(const char * a,const char *b){
	char* buffer = new char[256];
	strcpy(buffer,a);
	strcat(buffer,"/");
	strcat(buffer,b);
	return buffer;
}
void tree(char* argv,int level){
	DIR* dirptr;
	struct stat buf;
	stat(argv,&buf);
	if(!S_ISDIR(buf.st_mode)){
		return;	
	}
	//open file
	if((dirptr = opendir(argv))!=NULL){
		struct dirent* entry;
		while(entry=readdir(dirptr)){
			if(!is_regular_file(entry->d_name)){
				continue;
			}		
			for(int i=0;i<level;i++){
				printf("\t");
			}
			printf("|");
			printf("--");
			printf("%s\n",entry->d_name);
			tree(append(argv,entry->d_name),level+1);
		}
		//close file
		closedir(dirptr);
	}
}
int main(int argc,char* argv[]){

	tree(argv[1],0);
}

后记

这是我2012年的文章,原来发表在ITeye,现在一并迁移过来


请我喝瓶饮料

微信支付码