linux c遍历文件夹的方法比较简单,使用c来实现

#include <iostream>
#include <stdio.h> #include <sys/types.h>
#include <dirent.h>
#include <sys/dir.h>
#include <sys/stat.h> ...
enum
{
    DT_UNKNOWN = 0,     //未知类型
    DT_FIFO = 1,        //管道
    DT_CHR = 2,         //字符设备文件
    DT_DIR = 4,         //目录
    DT_BLK = 6,         //块设备文件
    DT_REG = 8,         //普通文件
    DT_LNK = 10,        //连接文件
    DT_SOCK = 12,       //套接字类型
    DT_WHT = 14         //
};
void loopDir(const char *dir_path) { 
  char temp[] = {};
  struct dirent *pdirent;
DIR *d_info = opendir(dir_path);
if (d_info)
{
while ((pdirent = readdir(d_info)) != NULL)
{
if (pdirent->d_type & DT_REG)
{
//普通文件
}
if (pdirent->d_type & DT_DIR)
{
//目录,递归 }
} }
} ...

在类Unix或linux (OSX,iOS,Android系统)下面搜索某一类型的文件可以用OgreSearchOps来使用,非常方便,对应 win32 则需要另外一套机制

// 头文件引用部分
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
#include <io.h>
#else
#include <unistd.h>
#include <stdio.h>
#include <dirent.h>
#include <sys/stat.h> #include "OgreSearchOps.h"
#endif void MfindFiles(const std::string &dir_path,const std::string &partten,std::vector<std::string> &arr)
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
_finddata_t FileInfo;
string strfind = dir_path + "\\" + partten;
long Handle = _findfirst(strfind.c_str(), &FileInfo); if (Handle == -1L)
{
exit(-1);
}
do{
if (FileInfo.attrib & _A_SUBDIR)
{
}
else
{
string filename = (dir_path + "\\" + FileInfo.name);
arr.push_back(FileInfo.name);
}
}while (_findnext(Handle, &FileInfo) == 0); _findclose(Handle);
#else
findFiles(dir_path, partten, false, false, &arr);
#endif
} // 测试 搜索所有的.plist 后缀名文件
std::vector<std::string> plist_file_list;
MfindFiles(effect_path, "*.plist",plist_file_list);

linux c遍历文件夹 和文件查找的方法的更多相关文章

  1. C/C++遍历文件夹和文件

    本方法可用于windows和linux双平台,采用C/C++标准库函数. 库函数 包含头文件 #include 用到数据结构_finddata_t,文件信息结构体的指针. struct _findda ...

  2. 有关文件夹与文件的查找,删除等功能 在 os 模块中实现

    最近在写的程序频繁地与文件操作打交道,这块比较弱,还好在百度上找到一篇不错的文章,这是原文传送门,我对原文稍做了些改动. 有关文件夹与文件的查找,删除等功能 在 os 模块中实现.使用时需先导入这个模 ...

  3. Linux上统计文件夹下文件个数以及目录个数

    对于linux终端用户而言,统计文件夹下文件的多少是经常要做的操作,于我而言,我会经常在谷歌搜索一个命令,“如何在linux统计文件夹的个数”,然后点击自己想要的答案,但是有时候不知道统计文件夹命令运 ...

  4. day18 时间:time:,日历:calendar,可以运算的时间:datatime,系统:sys, 操作系统:os,系统路径操作:os.path,跨文件夹移动文件,递归删除的思路,递归遍历打印目标路径中所有的txt文件,项目开发周期

    复习 ''' 1.跨文件夹导包 - 不用考虑包的情况下直接导入文件夹(包)下的具体模块 2.__name__: py自执行 '__main__' | py被导入执行 '模块名' 3.包:一系列模块的集 ...

  5. linux安装PyCharm,PyCharm常用快捷键及调试模式,pycharm里面对文件夹或者文件进行重命名

    PyCharm常用快捷键及调试模式 2017年10月18日 23:13:43 菜鸟之神 阅读数:5835    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn ...

  6. albert1017 Linux下压缩某个文件夹(文件夹打包)

    albert1017 Linux下压缩某个文件夹(文件夹打包) tar -zcvf /home/xahot.tar.gz /xahottar -zcvf 打包后生成的文件名全路径 要打包的目录例子:把 ...

  7. Linux 删除文件夹和文件的命令

    linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可.直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字-r 就 ...

  8. Java访问文件夹中文件的递归遍历代码Demo

    上代码: import java.io.File; /* * 需求:对指定目录进行所有内容的列出(包含子目录中的内容) * 也可以理解为 深度遍历. */ public class FindAllFi ...

  9. Sublime Text 查找时排除指定的文件夹或文件

    Sublime Text 查找时排除指定的文件夹或文件 Ctrl + Shift + F这组快捷键可以调出 Sublime Text 的查找替换窗口,里边有一栏 Where,可以做一些高级设置:d:\ ...

  10. Linux 删除文件夹和文件的命令(转载)

    Linux 删除文件夹和文件的命令 听语音 | 浏览:93339 | 更新:2013-05-02 18:40 | 标签:linux 文件夹 linux删除目录很简单,很多人还是习惯用rmdir,不过一 ...

随机推荐

  1. iOS局部刷新

    iOS: TableView如何刷新指定的cell 或section //一个section刷新 NSIndexSet *indexSet=[[NSIndexSet alloc]initWithInd ...

  2. 在SQL中导入Excel数据时强制以文本类型导入

    Excel不是关系型数据库,在导入到sql中时对于数值型,sql有时int型会处理成float,有时数字文本混排的列,sql会认为是数值型,导入的结果有的数据变成了null,但是用sql导出excel ...

  3. Django基本操作命令

    1.新建一个django项目 django-admin.py startproject project-name 2.新建一个app python manage.py startapp app-nam ...

  4. Django视图函数

    一.视图函数 1. 视图函数的第一个参数一定是一个HTTPRequest类型的对象,这个对象是Django自动创建的,具体形参名通常用request.通过这个对象,可以调用请求的一些参数,比如requ ...

  5. Vijos P1062 迎春舞会之交谊舞

    题目链接:https://vijos.org/p/1062 题意:输入n(n <= 1500)个女生左边有多少个男生.每个女生都和她左边最近的男生跳舞. 输出每个女生到可以与之跳舞的男生之间有几 ...

  6. JavaScript decodeURI() 和 encodeURI() 函数

    定义和用法 decodeURI() 函数可对 encodeURI() 函数编码过的 URI 进行解码. 语法 decodeURI(URIstring) 参数 描述 URIstring 必需.一个字符串 ...

  7. 升级mac中的系统之后,给PHP安装扩展常出现问题

    (1)在装mcrypt插件时报错,提示:mcrypt fatal error: 'php.h' file not found,然后又仔细操作了一次在输完phpize回车时就已经开始出错了,出错信息如下 ...

  8. location.hash && location.href

    hash:设置或获取 href 属性中在井号“#”后面的分段. href:设置或获取整个URL为字符串. 通过下面的测试你会发现区别,将代码放到你的HTML中,然后用浏览器打开,测试步骤: 点击“超链 ...

  9. 手游:cocos2d-x3.0 移植 wp8 开发 各种 “蛋疼”问题的汇总

    蛋疼的问题的起源: wp8 做应用开发,显示显示中文,源码包含中文都是没有一点问题的, 只是cocos2d-x 的编码方式(UTF-8),引起的一系列的问题. 1:不能显示服务器返回的中文 2:c++ ...

  10. Linux回收站[改写rm防止误删文件无法恢复]

    http://blog.csdn.net/wklken/article/details/6898590