Chinaunix首页 | 论坛 | 博客
  • 博客访问: 284125
  • 博文数量: 82
  • 博客积分: 2607
  • 博客等级: 少校
  • 技术积分: 785
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-14 15:23
文章分类

全部博文(82)

文章存档

2012年(4)

2010年(1)

2009年(2)

2008年(8)

2007年(34)

2006年(33)

我的朋友

分类: C/C++

2007-03-09 14:59:55

#include
#include
#include
#include
#include

int mm (DIR *dp) {
 DIR *ap;
        struct dirent *dirp;
 while ((dirp = readdir(dp)) != NULL) {
  if (strcmp(dirp->d_name , ".") &&  strcmp(dirp->d_name, "..")) {
   printf("%s\n",dirp->d_name);
   if ((ap = opendir(dirp->d_name)) != NULL)
    if (!strcmp(ap,"DIR*"))
     mm(ap);
  }
 }
 closedir(dp);
 return 0;
}
int main(int argc, char *argv[]) {
 DIR *dp;
 if (argc != 2)
  printf("%s","usage: ls directory_name");
 if ((dp = opendir(argv[1])) == NULL)
  printf("%s", "kkdkkd");
 else
  mm(dp);
 
 _exit(0);
}
-----------------------------------------
 
#include
#include
#include
#include
#include
#include
void printdir(char *dir, int depth){
    DIR *dp;
    struct dirent *entry;
    struct stat statbuf;
  
    if((dp = opendir(dir)) == NULL){
        fprintf(stderr,"cannot open directory: %s\n",dir);
        return;
    }
    chdir(dir);
    while((entry = readdir(dp)) != NULL){
        lstat(entry->d_name,&statbuf);
        if(S_ISDIR(statbuf.st_mode)){
            if(strcmp("..",entry->d_name) == 0||
            strcmp(".",entry->d_name) == 0)
                continue;
            printf("%*s%s/\n",depth,"",entry->d_name);
            printdir(entry->d_name,depth+4);
        }
        else printf("%*s%s\n",depth,"",entry->d_name);
    }
    chdir("..");
    closedir(dp);
}
int main(int argc, char *argv[]) {
 printdir(argv[1],0);
}
 
 
阅读(1238) | 评论(0) | 转发(0) |
0

上一篇:shell循环

下一篇:Linux下文件恢复

给主人留下些什么吧!~~