C++获取指定目录下的所有文件

本文实例为大家分享了C++获取指定目录下所有文件的具体代码,供大家参考,具体内容如下

1.获得指定目录下的所有文件(不搜索子文件夹)

需要包含的头文件

#include <io.h>
#include <string>
#include <vector>
#include <fstream>

函数实现

void getAllFiles(string path, vector<string>& files)
{
  // 文件句柄
  long hFile = 0;
  // 文件信息
  struct _finddata_t fileinfo; 

  string p;

  if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo)) != -1) {
    do {
      // 保存文件的全路径
      files.push_back(p.assign(path).append("\\").append(fileinfo.name));

      } while (_findnext(hFile, &fileinfo) == 0); //寻找下一个,成功返回0,否则-1

    _findclose(hFile);
  }
}

2.获取指定目录下的所有文件(搜索子文件夹)

void getAllFiles(string path, vector<string>& files) {
  //文件句柄
  long hFile = 0;
  //文件信息
  struct _finddata_t fileinfo;
  string p;
  if ((hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo)) != -1) {
    do {
      if ((fileinfo.attrib & _A_SUBDIR)) { //比较文件类型是否是文件夹
        if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0) {
          files.push_back(p.assign(path).append("\\").append(fileinfo.name));
          //递归搜索
          getAllFiles(p.assign(path).append("\\").append(fileinfo.name), files);
        }
      }
      else {
        files.push_back(p.assign(path).append("\\").append(fileinfo.name));
      }
    } while (_findnext(hFile, &fileinfo) == 0); //寻找下一个,成功返回0,否则-1
    _findclose(hFile);
  }
}

3.获取指定格式的文件(不搜索子文件夹)

/*
path: 指定目录
files: 保存结果
fileType: 指定的文件格式,如 .jpg
*/
void getAllFiles(string path, vector<string>& files,string fileType)
{
  // 文件句柄
  long hFile = 0;
  // 文件信息
  struct _finddata_t fileinfo; 

  string p;

  if ((hFile = _findfirst(p.assign(path).append("\\*" + fileType).c_str(), &fileinfo)) != -1) {
    do {
      // 保存文件的全路径
      files.push_back(p.assign(path).append("\\").append(fileinfo.name));

      } while (_findnext(hFile, &fileinfo) == 0); //寻找下一个,成功返回0,否则-1

    _findclose(hFile);
  }
}

4.测试

int main(int argc, char** argv)
{
  vector<string> temp;
  getAllFiles("J:\\faces\\test", temp,".jpg");
  for (int i = 0; i < temp.size();++i )
  {
    cout << temp[i] << endl;
  }
  return 0;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C++遍历文件夹获取文件列表

    本文实例类似遍历一个文件夹然后获得该文件夹下的文件列表,可以随意切换文件目录,本来是用在我们小组写的简易ftp服务器上的一个给客户端显示的一个小插件,总之单拿出来应该没啥含量,调用了windows的一些API. 实例代码: #include<iostream> #include<stdlib.h> #include<windows.h> #include<fstream> #include<stdio.h> #include<vector&

  • C/C++获取目录下的文件列表信息

    1.数据结构 复制代码 代码如下: struct dirent{    long d_ino;                 /* inode number 索引节点号 */    off_t d_off;                /* offset to this dirent 在目录文件中的偏移 */    unsigned short d_reclen;    /* length of this d_name 文件名长 */    unsigned char d_type;    

  • linux C++ 获取文件绝对路径的实例代码

    提供ftp服务时需要获取文件绝对路径,这里记录一下. #include <stdlib.h> #include <stdio.h> #include <limits.h> int main(){ const char *file_name = "filename"; char abs_path_buff[PATH_MAX]; //获取文件路径, 填充到abs_path_buff //realpath函数返回: null表示获取失败; 否则返回指向ab

  • C++获取文件哈希值(hash)和获取torrent(bt种子)磁力链接哈希值

    复制代码 代码如下: // CHash.h : header file #pragma once#include "sha1.h" #define        SIZE_OF_BUFFER         16000 class CHash{// Constructionpublic:    CString SHA1Hash(CString strHashFile);}; 复制代码 代码如下: // CHash.cpp : implementation file//#include

  • C++获取zip文件列表方法

    // ZipFile.h // #ifndef ZIPFILE_H #define ZIPFILE_H #include <string> #include <vector> #define ZIP_OK 0 #define ZIP_ERR_OPEN 1 #define ZIP_ERR_WRONG_FILE 2 #define ZIP_ERR_WRONG_HEADER 3 #define BYTE unsigned char #define ui32 unsigned int #d

  • C++获取指定目录下的所有文件

    本文实例为大家分享了C++获取指定目录下所有文件的具体代码,供大家参考,具体内容如下 1.获得指定目录下的所有文件(不搜索子文件夹) 需要包含的头文件 #include <io.h> #include <string> #include <vector> #include <fstream> 函数实现 void getAllFiles(string path, vector<string>& files) { // 文件句柄 long h

  • 批处理(bat)获取指定目录下的所有文件列表

    判断输入路径是不是文件夹,如果是,则获取文件夹下的所有文件名(包括子文件夹下的) 如果要文件名带上路径,则需要在dir这一句的%%~nxi上作改动 @echo off :: 判断输入路径是不是文件夹,如果是,则获取文件夹下的所有文件名(包括子文件夹下的) :: 如果要文件名带上路径,则需要在dir这一句的%%~nxi上作改动 :: code by jm CMD@XP 2006-7-20 if exist list.txt del list.txt /q :input cls set input=

  • C#获取指定目录下某种格式文件集并备份到指定文件夹

    1.获取文件的路径和移动到文件夹信息 string fileName = ""; string sourceFile = @"F:\Test文件夹\CSV"; string bakFilePath = @"F:\Test文件夹\CSV\bak"; 2.获取文件夹下文件信息,并移动到Bak操作. //匹配.csv的文件路径地址集合 string[] FullfillfilesList = Directory.GetFiles(sourceFile,

  • python获取指定目录下所有文件名列表的方法

    本文实例讲述了python获取指定目录下所有文件名列表的方法.分享给大家供大家参考.具体实现方法如下: 这里python代码实现获取文件名列表的功能,可以指定文件中包含的字符,方便提取特定类型的文件名列表: # -*- coding: utf-8 -*- #~ #------------------------------------------------------------------ #~ module:wlab #~ Filename:wgetfilelist.py #~ Funct

  • python在指定目录下查找gif文件的方法

    本文实例讲述了python在指定目录下查找gif文件的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/python # Use the standard find method to look for GIF files. import sys, find if len(sys.argv) > 1: dirs = sys.argv[1:] else: dirs = [ '.' ] # Go for it. for dir in dirs: files = find.find

  • java删除指定目录下所有空文件夹的方法

    本文实例讲述了java删除指定目录下所有空文件夹的方法.分享给大家供大家参考,具体如下: package com.func; import java.io.File; import java.util.ArrayList; import java.util.List; /** * 删除指定目录下的所有空文件夹 * * @author zdw * */ public class FileUtils { List<File> list = new ArrayList<File>();

  • VBS怎么获取指定目录下的文件列表

    VBS肿么获取某目录下的文件列表 dim FileName,fs,foldername foldername = InputBox("请输入想要在哪个文件夹查找", "VBS查找文件") If foldername = "" Then wscript.quit End If Set fs = CreateObject("scripting.filesystemobject") digui (foldername)'调用递归函数

  • PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台

    复制代码 代码如下: //取得指定文件夹的目录名称 function get_dir_name($dir_path,$file) { $dirpath = $dir_path; $dir = scandir($dirpath); foreach ($dir as $key=>$value) { if (is_dir($dirpath.'/'.$value) && $value != '.' && $value != '..') { //echo $dirpath.'/

  • PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)

    如果做一个在线的文件管理系统的话,那么首先必须知道怎么读取目录和文件,其实这个功能几行代码就可以实现了. 输出效果: 实现代码: 复制代码 代码如下: <?php $dir = "D:/";  //要获取的目录 echo "********** 获取目录下所有文件和文件夹 ***********<hr/>"; //先判断指定的路径是不是一个文件夹 if (is_dir($dir)){  if ($dh = opendir($dir)){   whi

  • java 用递归获取一个目录下的所有文件路径的小例子

    复制代码 代码如下: private List<String> ergodic(File file,List<String> resultFileName){        File[] files = file.listFiles();        if(files==null)return resultFileName;// 判断目录下是不是空的        for (File f : files) {            if(f.isDirectory()){// 判

随机推荐