影子论坛

发新帖

手机C递归遍历文件夹 软件

wuhuisai 11月前 343

编译模式使用,普通模式需要简单的修改。

递归搜索并且回调,回调路径如需要继续需要手动保存。

//递归内容回调函数
typedef int SEARCH_CB(char *path);

//遍历文件夹内容
#define MAX 200
int searchDir(char *path, SEARCH_CB *call)
{
  int32 search, find;
  
  //开始搜索
  char *buff = malloc(sizeof(char)*MAX);
  memset(buff, '\0', MAX);
  search = findstart(path, buff, MAX);
  find = (unsigned char)search;
  
  //遍历搜索
  while(find>=0)
  {
    //生成新名字
    char *newname = 
    malloc(sizeof(char)*(strlen(path)+MAX));
    memset(newname, '\0', strlen(path)+MAX);
    sprintf(newname, "%s/%s", path, buff);
    
    //转换图片
    if(filestate(newname)==IS_FILE)
    {
      (*call)(newname);
    }
    
    //文件夹
    if(filestate(newname)==IS_DIR)
    if(strcmp(newname, "")!=0)
    if(strcmp(buff, ".")!=0)
    if(strcmp(buff, "..")!=0)
    {
      if((*call)(newname))
        searchDir(newname, call);
    }
    
    //搜索下一个
    free(newname);
    memset(buff, '\0', MAX);
    find = findnext(search, buff, MAX);
  }
  
  free(buff);
  findstop(search);
  return FALSE;
}
最新回复 (1)
风的影子 11月前
引用 1
  稍微修改下做成更多的功能
返回
发新帖
wuhuisai
主题数
29
帖子数
36
注册排名
2

Processed Time:0.19591903686523