zoukankan      html  css  js  c++  java
  • linux 系统获得当前文件夹下存在的所有文件 scandir函数和struct dirent **namelist结构体[转]

    linux 系统获得当前文件夹下存在的所有文件 scandir函数和struct dirent **namelist结构体

    1、引用头文件#include<dirent.h>

    struct dirent **namelist;
    int itotalfile;
    itotalfile = scandir(filenameBuf,&namelist,0,alphasort);
    char filenamelist[itotalfile][128];
    for(int j = 0; j<itotalfile; j++)

    {
              sprintf(filenamelist[j],"%s",filenameBuf) ;
              strcat(filenamelist[j],namelist[j]->d_name);

    }

     2、

    scandir函数:读取特定的目录数据
    表头文件:#include <dirent.h>
    定义函数:

    int scandir(const char *dirp, struct dirent ***namelist,

              int (*filter)(const struct dirent *),

              int (*compar)(const struct dirent **, const struct dirent **));

    函数说明:
             scandir()会扫描参数dir指定的目录文件,经由参数select指定的函数来挑选目录结构至参数namelist数组中,最后再调用
    参数compar指定的函数来排序namelist 数组中的目录数据。每次从目录文件中读取一个目录结构后便将此结构传给参数select所指的
    函数, select函数若不想要将此目录结构复制到namelist数组就返回0,若select为空指针则代表选择所有的目录结构。scandir()会
    调用 qsort()来排序数据,参数compar则为qsort()的参数,若是要排列目录名称字母则可使用alphasort(). 结构dirent定义请参考

    readdir()

    返回值 :成功则返回复制到namelist数组中的数据结构数目,有错误发生则返回-1
    错误代码:ENOMEM 核心内存不足

    Example

     1 /* print files in current directory in reverse order */
     2 #include <dirent.h>
     3 main()
     4 {
     5     struct dirent **namelist;
     6     int n;
     7     n = scandir(".", &namelist, 0, alphasort);
     8     if (n < 0)
     9         perror("scandir");
    10     else 
    11     {
    12         while(n--) 
    13         {
    14             printf("%s/n", namelist[n]->d_name);
    15             free(namelist[n]);
    16         }
    17         free(namelist);
    18     } 
  • 相关阅读:
    Lambda表达式详解
    MassTransit RabbitMQ 参考文档
    RabbitMQ
    LeetCode专题-Python实现之第26题:Remove Duplicates from Sorted Array
    LeetCode专题-Python实现之第21题:Merge Two Sorted Lists
    LeetCode专题-Python实现之第20题:Valid Parentheses
    LeetCode专题-Python实现之第9题:Palindrome Number
    LeetCode专题-Python实现之第14题:Longest Common Prefix
    LeetCode专题-Python实现之第13题:Roman to Integer
    LeetCode专题-Python实现之第7题:Reverse Integer
  • 原文地址:https://www.cnblogs.com/the-tops/p/7808811.html
Copyright © 2011-2022 走看看