当前位置: 首页 > news >正文

网站备案域名更改公司/武汉网络推广广告公司

网站备案域名更改公司,武汉网络推广广告公司,宠物电商网站模板,重庆做网站的程序员待遇递归遍历某一路径下的所有文件 在windows下,可以使用FindFirstFile和FindNextFile来实现。 而在Linux下,则可以使用opendir和readdir来实现。 具体实现见下面两个函数,分别实现了打印某一路径下的所有文件,包括子目录下的文件。…

递归遍历某一路径下的所有文件


    在windows下,可以使用FindFirstFile和FindNextFile来实现。
    而在Linux下,则可以使用opendir和readdir来实现。

    具体实现见下面两个函数,分别实现了打印某一路径下的所有
文件,包括子目录下的文件。在具体实现的时候需要注意设置路径。

注:
    下面两个程序都通过编译通过,且正常执行。
    windows下使用VC6.0编译;
    Linux下使用gcc 3.4.3编译。

#include <stddef.h>

#include <stdio.h>

#include <sys/types.h>

#include <sys/stat.h>       // stat 函数所在的文件

#include <dirent.h>

//for windows
void findAllFile(char * pFilePath)
{
 
 WIN32_FIND_DATA FindFileData;
 HANDLE hFind = INVALID_HANDLE_VALUE;
 char DirSpec[MAX_PATH + 1];  // directory specification
 DWORD dwError;
 
 strncpy (DirSpec, pFilePath, strlen(pFilePath) + 1);
 SetCurrentDirectory(pFilePath);
 strncat (DirSpec, "//*", 3);
 
 hFind = FindFirstFile(DirSpec, &FindFileData);
 
 if (hFind == INVALID_HANDLE_VALUE)
 {
  printf ("Invalid file handle. Error is %u/n", GetLastError());
  return ;
 }
 else
 {
  if (FindFileData.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY )
  {
   printf ("    %s/n", FindFileData.cFileName);
  }
  else if(FindFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY
   && strcmp(FindFileData.cFileName, ".") != 0
   && strcmp(FindFileData.cFileName, "..") != 0)
  {
   char Dir[MAX_PATH + 1];
   strcpy(Dir, pFilePath);
   strncat(Dir, "//", 2);
   strcat(Dir, FindFileData.cFileName);
   
   findAllFile(Dir);
  }
  
  while (FindNextFile(hFind, &FindFileData) != 0)
  {
   if (FindFileData.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY)
   {
    printf ("    %s/n", FindFileData.cFileName);
   }
   else if(FindFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY
    && strcmp(FindFileData.cFileName, ".") != 0
    && strcmp(FindFileData.cFileName, "..") != 0)
   {
    char Dir[MAX_PATH + 1];
    strcpy(Dir, pFilePath);
    strncat(Dir, "//", 2);
    strcat(Dir, FindFileData.cFileName);
    findAllFile(Dir);
   }
   
  }
  
  dwError = GetLastError();
  FindClose(hFind);
  if (dwError != ERROR_NO_MORE_FILES)
  {
   printf ("FindNextFile error. Error is %u/n", dwError);
   return;
  }
 }
}


//for linux
void findAllFile(char * pFilePath)
{
 DIR * dir;
 dirent * ptr;
 struct stat stStatBuf;
 chdir(pFilePath);
        dir = opendir(pFilePath);
 while ((ptr = readdir(dir)) != NULL)
     {
  if (stat(ptr->d_name, &stStatBuf) == -1)
  {
   printf("Get the stat error on file:%s/n", ptr->d_name);
   continue;
  }
  if ((stStatBuf.st_mode & S_IFDIR) && strcmp(ptr->d_name, ".") != 0
    && strcmp(ptr->d_name, "..") != 0)
  {
   char Path[MAX_PATH];
   strcpy(Path, pFilePath);
   strncat(Path, "/", 1);
   strcat(Path, ptr->d_name);
   findAllFile(Path);
  }
  if (stStatBuf.st_mode & S_IFREG)
  {
   printf("  %s/n", ptr->d_name);
  }
  //this must change the directory , for maybe changed in the recured

function 
  chdir(pFilePath);
 }
     closedir(dir);
}


 
http://www.lbrq.cn/news/1435231.html

相关文章:

  • 个人网站建设/seo的培训班
  • 门头沟网站建设/百度一下百度知道
  • 南宁 网站建设 公司/最好的免费建站网站
  • 如何做旅游网站推广/百度做广告怎么做
  • 公司简介怎样写/网站seo案例
  • 手机摄影网站/什么是搜索引擎优化
  • 个人养老金制度将推/seo外链工具
  • 网站后台图片做链接/公司推广文案
  • 阿里云网站备案查询/如何做好市场推广
  • 村级网站建设/常见的网络直接营销有哪些
  • 公司查询网站查询系统/游戏推广公司怎么接游戏的
  • 官方网站查询 优帮云/全网营销代运营
  • 做bannar在哪个网站参考/优化推广排名网站教程
  • 网络规划设计师待遇/好的seo平台
  • 17网站一起做网店下载/网站seo优化外包顾问
  • 新建网站怎么做关键词/cba最新消息
  • phpcms网站转移/网络推广经验
  • java网站建设教程/网站流量统计工具
  • 做企业网站联系/深圳百度推广代理商
  • 兰州网站/网络推广的工作内容
  • 北京手机网站建设公司/百度推广收费标准
  • 百度站长工具网站认证/谷歌seo搜索优化
  • 班级网站的建设调查表/培训机构网站
  • java 做的网站/a5站长网
  • 用摄像头直播网站怎么做/实体店怎么引流推广
  • 手工做的网站/自助建站系统个人网站
  • 用什么开源框架做网站/狼雨seo网站
  • 深圳住房与建设局网站/东莞软文推广
  • 宜昌做网站哪家最便宜/seo关键词排名系统
  • 做交互网站/建网站seo
  • springboot博客实战笔记02
  • 【51单片机学习】定时器、串口、LED点阵屏、DS1302实时时钟、蜂鸣器
  • git upstream
  • SVN提交服务器拒绝访问的问题
  • [AI React Web] 包与依赖管理 | `axios`库 | `framer-motion`库
  • ARM 实操 流水灯 按键控制 day53