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

(c语言)如何在程序里找出某一目录中的扩展名为plt的文件?

    来源: 互联网  发布时间:2015-02-25

    本文导语:  我想编一段c程序:在/mnt/usb目录里,找出扩展名为plt的文件?怎么做?给点提示或编程的思路。谢谢帮助! | 一个粗糙的版本, 有错请告知, 谢了, :-) void walkdir(const char *dirname) {       ...

我想编一段c程序:在/mnt/usb目录里,找出扩展名为plt的文件?怎么做?给点提示或编程的思路。谢谢帮助!

|
一个粗糙的版本, 有错请告知, 谢了, :-)

void walkdir(const char *dirname)
{
        char dname[PATH_MAX + 1];
        int mode;
        struct stat sbuf;
        struct dirent *direntp;
        DIR *dirp;
        char *p;
        int len;

        if (lstat(dirname, &sbuf) != 0)
                return ;
        mode = sbuf.st_mode;

        if (S_ISDIR(mode)) {
                if ((dirp = opendir(dirname)) == NULL)
                        return ;
                while ((direntp = readdir(dirp)) != NULL) {
                        if (strcmp(direntp->d_name, ".") && strcmp(direntp->d_name, "..")) {
                                strcpy(dname, dirname);
                                if (strcmp(dirname, "/"))
                                        strcat(dname, "/");
                                strcat(dname, direntp->d_name);
                                walkdir(dname);
                        }
                }
                closedir(dirp);
                return ;
        } else {
                if (S_ISREG(mode)) {
                        if ((len = strlen(dirname)) >= 4) {
                                p = (char *)(dirname + len - 4);
                                if (!strcmp(p, ".plt")) {
                                        printf("%sn", dirname);
                                }
                        }
                }
        }
}

|
static void findfile( void )
{
#define SUFFIX ".plt"
#define DIRRE "/mnt/usb"

 int i = 0;
 DIR *dirp; struct dirent *dp;
 int suffixlen = strlen( SUFFIX );

 dirp = opendir( DIRRE );
 if( !dirp ){
    perror("opendir");
    return -1;
 }
 while( (dp = readdir(dirp)) != NULL ){
     if( strncmp(dp->d_name+(dp->d_namlen - suffixlen),
                       SUFFIX, suffixlen) == 0 ){ /* find */
         fprintf( stderr, "[%s] found.n", db->d_name );
     }
}

(void)closedir( dirp );
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 编程语言可扩展框架 LayerD
  • Lisp语言扩展 Lush
  • Python的C语言扩展 Cython
  • C语言 扩展欧几里得算法代码
  • 2013年7月和2013年8月编程语言排行榜
  • 如何在GTK2.0下实现国际化(语言选择根据自己设置的语言,不用系统的语言)
  • 2017 年热门编程语言排行榜出炉,你的语言上榜没?
  • C语言中有指针,因此C语言可以创建链表,那么Java语言没有指针,那Java是否可以创建链表呢?
  • 苹果OS X和IOS下最新编程语言swift介绍
  • 求助,在linux下,c语言和汇编语言的接口是什么?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • C语言中间语言 CIL
  • PHP编程语言介绍及安装测试方法
  • 最近学JSP,苦于HTML语言和JAVA语言太差,请教推荐几本书,thanks.
  • Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)
  • 动态编程语言 LIME编程语言
  • c语言实现MD5算法完整代码示例
  • C语言如何改变当前语言环境
  • 以NetBeans IDE为例介绍如何使用XML中Schema语言
  • 如何在VIM中使汇编语言和C语言自动缩进?
  • c语言基于libpcap实现一个抓包程序过程
  • 我安装的linux时默认语言选择的是中文,又乱码,怎么可以解决?怎么更改默认语言成英文?
  • HTML超文本标记语言教程及实例
  • Redhat9安装时语言只选择了中文,现在还能再增加其它语言的支持吗?如英文
  • MD5算法的C语言实现
  • 请问哪里有ubuntu 9.0版本的中文语言包和KDE的中文语言包下载,我用Google搜索了很多地方都没有!


  • 站内导航:


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

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

    浙ICP备11055608号-3