当前位置:  技术问答>linux和unix

这段代码不能遍历所有目录,请大神们帮看看

    来源: 互联网  发布时间:2016-12-26

    本文导语:  这段代码不能遍历所有目录,请大神们帮看看 #include #include #include #include void dirls(DIR *dirp,int num); int main(int argc,char **argv) {   ssize_t readnum;   DIR *dirp;   struct dirent *direntp;   if(argcd_name);      if(0!=strcmp(direntp...

这段代码不能遍历所有目录,请大神们帮看看
#include
#include
#include
#include
void dirls(DIR *dirp,int num);
int main(int argc,char **argv)
{
  ssize_t readnum;
  DIR *dirp;
  struct dirent *direntp;
  if(argcd_name);
     if(0!=strcmp(direntp->d_name,".")&&0!=strcmp(direntp->d_name,"..")&&NULL!=(dir=opendir(direntp->d_name)))
     {
       fprintf(stdout,"n***********************%s*******************************n",direntp->d_name);
       dirls(dir,num+1);
       fprintf(stdout,"n#######################%s##################################n",direntp->d_name);
     }
    }
  closedir(dirp);
}

|
 
 恰好写过一个,仅供参考。
/****************************
  遍历文件 夹中所有的文件 及目录.
  自己实现了chdir()函数
  **************************/

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

struct passwd *pwd;
struct group *grp;

void info(struct stat *m, char *name) // 输出文件的信息
{

char str2[3] = {'r','w','x'};
stat(name,m);
  

switch(((*m).st_mode & S_IFMT))
{
case S_IFREG :  printf("-");break;

case S_IFDIR :  printf("d");break;

case S_IFCHR:   printf("c");break;

case S_IFBLK:   printf("b");break;

case S_IFIFO:   printf("p");break;

case S_IFLNK:   printf("l");break;

case S_IFSOCK:  printf("s");break;

}

 int tmp = 00400;
int i;

for(i = 0; i >1;
}
  printf("  %10ld", (long) (*m).st_ino);

printf("  %-6ld", (long) (*m).st_nlink);

if((pwd = getpwuid(m->st_uid)) != NULL)
printf("  %-8.8s",pwd->pw_name);
else
printf("  %-8.8s",(char *)m->st_uid);

if((grp = getgrgid(m->st_gid)) != NULL)
printf("  %-8.8s",grp->gr_name);
else 
printf("  %-8.8s",(char *)m->st_gid);

printf("  %10lld" ,(long long) (*m).st_size);

printf("  %s",name);
printf("n");


}

void info_dir(DIR *dp,char *name)
{
struct stat mm;
struct dirent *ep;
int i = 0;

while(ep = readdir(dp)){
i = 0;
char buf[100];
strcpy(buf,name);

if(ep->d_name[0] != '.'){
while(buf[i] != '')  
{
i++;
}

if(buf[i-1] != '/'){
buf[i] = '/'; //在给定的路径下加/再传到info函数
i++;
buf[i] = '';
}
strcat(buf,ep->d_name);

info(&mm,buf);
}
}
}

int main(int argc ,char **argv)
{
char buf[100];
struct stat m;
DIR *dp;
if(argc 1;
    }
    printf(" %10ld", (long) (*m).st_ino);

    printf(" %-6ld", (long) (*m).st_nlink);

    if((pwd = getpwuid(m->st_uid)) != NULL)
        printf(" %-8.8s",pwd->pw_name);
    else
        printf(" %-8.8s",(char *)m->st_uid);

    if((grp = getgrgid(m->st_gid)) != NULL)
        printf(" %-8.8s",grp->gr_name);
    else 
        printf(" %-8.8s",(char *)m->st_gid);

    printf(" %10lld" ,(long long) (*m).st_size);

    printf(" %s",name);
    printf("n");


}

void info_dir(DIR *dp,char *name)
{
    struct stat mm;
    struct dirent *ep;
    int i = 0;

    while(ep = readdir(dp)){
        i = 0;
        char buf[100];
        strcpy(buf,name);

        if(ep->d_name[0] != '.'){
            while(buf[i] != '')  
            {
                i++;
            }

            if(buf[i-1] != '/'){
                buf[i] = '/'; //在给定的路径下加/再传到info函数
                i++;
                buf[i] = '';
            }
            strcat(buf,ep->d_name);

            info(&mm,buf);
        }
    }
}

int main(int argc ,char **argv)
{
    char buf[100];
    struct stat m;
    DIR *dp;
    if(argc 

    
 
 

您可能感兴趣的文章:

  • c++类库Boost.Bimap(遍历,插入,查找,删除)参考代码
  • jquery遍历checkbox代码与说明
  • php无限遍历目录代码
  • C#的Dictionary几种遍历的代码
  • 用什么方法可以遍历一个类的所有实例?给点代码。谢谢
  • vb.net实例代码 在访问表中遍历记录
  • shell遍历目录处理特定目录的脚本代码
  • jsp遍历文件夹下的文件的代码
  • c# 迭代器 遍历文件信息的实例代码
  • c++ builder TreeView控件节点遍历代码
  • JAVA遍历map的几种实现方法代码
  • java数组遍历 删除remove(示例代码)
  • 遍历目录部分代码请教其含义
  • Jquery遍历修改url请求参数的代码详解
  • php遍历目录二例代码
  • Jquery遍历节点的实现代码
  • PHP不用递归遍历目录下所有文件的代码
  • C#遍历文件夹的实现代码
  • Jquery 三层遍历与删除的代码示例
  • 求助,遍历目录中所有文件的代码分析
  • 获取硬件信息的源代码:在遍历文件链表时出现段错误,请高手指教!
  • net-snmp 发送邮件代码 求各位大神解说下
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 谁有过开源代码移植方面的经验,能不能谈谈这方面的经验?
  • 100分求助 能不能提供一些有关图像分割的算法和实现代码!谢谢
  • 源代码不能安装
  • 哪位大哥能不能提供一个简单一点的Telnet服务器的代码?(Linux的telnetd挺复杂的)
  • 在底层驱动代码C中能不能嵌入shell脚本?
  • 各位大侠,一般我们做了一个application,加那些代码使这个application的窗口大小不能改变。(内空)给25分
  • 用Jbuilder3 遇到问题不能运行把可疑代码注掉后可以运行但是重新使用可疑代码时又可以运行了多次重复都是如此
  • QT Designer生成的代码不能生成可执行程序
  • 请大家看一看我的jsp代码,为什么不能使用?
  • 我在windows下用xterm登陆LINUX,但是不能直接在windows下copy代码到xterm窗口上,有人知道怎么搞定吗?
  • java的线程的setDaemon()设为true,怎么不能运行呢?代码有误么?
  • 在VC下可以编绎的一段代码为何在LINUX下就不能通过了?
  • 为什么在applet里面显示一个弹出试菜单,不能显示,跟踪可以知道,代码都已经运行,为什么?为什么?
  • 高手们请救救我,为什么我的VAJ里可视化组合和源代码不能照应??急,急,急!
  • 我用java做的applet站内搜索程序,不能搜索中文,那位大虾能帮帮我?代码如下:
  • 哪里有VI和EMACS的源代码??我去GNU的FTP站点了,没找到,知道的朋友们,能不能告诉小弟一声,谢谢了!!!
  • 这段代码怎么不能输出args?
  • 为啥这段代码可以编译却不能执行? (急)
  • 不能在子类或外部类发布C#事件代码分析
  • 请帮我看看这小段代码,为什么不能在循环中执行sql?
  • javascript 添加到收藏夹和书签代码示例
  • 在JBuilder中,为什么编写的代码中,当代码出现关键字时,后面的部分代码就移位了,当在有关键字的那些代码行进行选择时,也会出现鼠标位
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 为什么两行代码间不加入其他代码就崩溃,而加入了日志代码后就不崩溃?
  • JSP中清空cookie代码参考
  • 在ubuntu8.10 新立得中安装anjuta,为什么没有代码提示功能,怎么做才有,还有自动代码补全和代码提示有什么区别,
  • Python获取网页编码的方法及示例代码
  • 到底怎么样的代码算是有效代码?请教了。。
  • HTML网页中的html body onload自动跳转方法介绍及自动跳转代码示例
  • 如果要研究源代码以提高自己,哪一个开放源代码的软件比较合适?
  • php通过socket_bind()设置IP地址代码示例


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3