1. 程式人生 > >基於C/C++的讀取資料夾下所有檔案(圖片、文件等)的程式碼

基於C/C++的讀取資料夾下所有檔案(圖片、文件等)的程式碼

<pre name="code" class="cpp">#include <iostream>
#include <string>
#include <vector>
#include <io.h>
#include <string.h>

using namespace std;

void getFiles(string foler, vector<string>& files);

int main() {
	string folder = "E:/MATLAB/LBP/scene_categories/MITcoast";  //此處用的是斜槓,也可以用反斜
	//但需注意的是由於C語言的特點,要用雙反斜槓,即"E:\\MATLAB\\LBP\\scene_categories"
	//cin >> folder;   //也可以用此段程式碼直接在DOS視窗輸入地址,此時只需正常的單反斜槓即可

	vector<string> files;
	getFiles(folder, files );  //files為返回的檔名構成的字串向量組

	for( int i = 0; i < files.size(); i++ ) {    //files.size()返回檔案數量

		//To do here
		cout << files[i] << endl;
	}
	system("pause");
	return 0;
}

void getFiles( string path, vector<string>& files ) {
	//檔案控制代碼
	long hFile   =   0;
	//檔案資訊
	struct _finddata_t fileinfo;   //大家可以去檢視一下_finddata結構組成        			         
	//以及_findfirst和_findnext的用法,瞭解後媽媽就再也不用擔心我以後不會編了
	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)
					getFiles( p.assign(path).append("\\").append(fileinfo.name), files );
			} 
			else {
				files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
			}
		} 
		while(_findnext(hFile, &fileinfo) == 0);_findclose(hFile);
	}
}


相關推薦

基於C/C++的讀取資料所有檔案圖片程式碼

<pre name="code" class="cpp">#include <iostream> #include <string> #include <vector> #include <io.h> #inclu

Linux C 讀取資料所有檔案包括子資料的檔名

Linux C  下面讀取資料夾要用到結構體struct dirent,在頭#include <dirent.h>中,如下: #include <dirent.h> struct dirent { long d_ino; /* inode number 索引節點號

C++】C++讀取特定路徑所有檔案//*資料所有圖片

內容:主要有兩種,一是藉助相關結構體,二是針對檔名排練有序。 一、藉助結構體 1.引用標頭檔案 #include <io.h> #include < fstream> #include < string> 2.適用範圍 沒有限制。

java 遞迴呼叫自動讀取資料所有檔案遞迴呼叫

import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; public cl

複製一個資料所有檔案包括子資料並修改檔案字尾名 java實現加密unlock

import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.i

windows讀取資料所有檔案——C++

intptr_t hFile = 0; struct _finddata_t fileInfo; std::string pathName, exdName;

C/C++獲取資料所有檔案的名字及全路徑

在實際中,會遇到需要通過程式獲取當前路徑下所有檔案的名稱,以下函式可以實現獲取所給路徑下檔名 及檔案對應的全路徑;需要包含文章末尾的兩個標頭檔案#include <vector> #include"dirent.h" #include"unistd.h" usi

C++ 遍歷某個資料所有檔案

#include<iostream> #include<string> #include<io.h> #include<cstdio> #include<cstdlib> #include<cstring> using namespace

C#/.NET中刪除指定資料所有檔案資料的幾種方法彙總

我們知道,在C#/.NET中的System.IO名稱空間下,都是關於檔案和資料夾資訊操作的類。如果在開發中有刪除指定資料夾下所有檔案和資料夾這樣的需要,應該如何使用C#/.NET來實現這個需求呢?方法一:直接刪除整個指定資料夾使用使用Directory.Delete("資料

c++ 獲取資料所有檔案

用c++獲取指定資料夾下的所有檔案,包括子資料夾裡的檔案。 void GetAllFiles( string path, list<string>&AllFiles, bool

C++ 遍歷資料以及子資料所有檔案

CFileFind 所提供的方法進行資料夾以及子資料夾遍歷時,經過測試會出現如果當前遍歷的路徑為碟符,且碟符中僅包含一箇中文資料夾(資料夾名以漢字開頭),此時遍歷不到該資料夾。 所以採用以下方法(需要新增頭#include "io.h" ) void GetAllFile

linux c語言遞迴遍歷資料所有檔案和子資料(附上替換文字檔案內容的方法)

#include <stdio.h> #include <sys/dir.h> #include <string> #include <sys/stat.h> //判斷是否為資料夾 bool isDir(const cha

C#刪除資料所有檔案

        /// <summary>         /// 刪除資料夾內容         /// </summary>         /// <param name="folderPath">資料夾路徑</param&g

如何用C#獲取指定資料所有檔名?

如題:         比如我要在ASP.NET程式的伺服器上DATA資料夾下所以有檔名.然後輸出.希望用C#程式碼實現...  可以用   Directory.GetFiles();方法... 返回包含檔名的路徑.然後再擷取檔名 如: string[]   filename

C++獲得資料所有檔案的路徑及檔名

標頭檔案:#include< io.h > filePath:資料夾路徑 vector<string> files; ////獲取該路徑下的所有檔案 getFil

c++修改指定資料所有副檔名

#include <io.h> #include <iostream> #include <cstring> #include <string>

c#遍歷資料獲得所有檔案

c#遍歷資料夾獲得所有檔案 在c#中,想要獲得一個資料夾下的所有子目錄以及檔案十分簡單。 首先,獲取目錄的情況下,DirectoryInfo.GetDirectories():獲取目錄(不包含子目錄)的子目錄,返回型別為DirectoryInfo[],支援萬用字元查詢; 其次,獲取檔案的

python讀取資料所有圖片

python讀取資料夾下所有圖片 具體實現步驟 功能需求 說明 第一步:匯入庫 第二步:寫讀取函式 第三步:函式呼叫 結語 具體實現步驟 功能需求 讀取一個資料夾中的所有圖片,並將影

c++遍歷資料所有檔案

#include<vector> #include<string> #include<io.h> #include<iostream> using namespace std; char * filePath = "D:\\JPEGImages

python讀取資料所有csv檔案

### 讀取資料夾下的所有csv檔案 import os # 輸出資料夾下的所有檔案 os.listdir('../data/simulation_data_generation/pdata2_100