C++讀取某個資料夾下面的子資料夾及其所有檔案
下面是輸出當前目錄下的所有資料夾以及檔案的絕對路徑(當然也可以是相對路徑,由輸入的路徑決定),下面的函式介面可以改裝為單輸出檔案或者資料夾的介面,這是一個大方面的總介面。
#include <fstream>
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;
void getAllFiles(string path, vector<string>& files)
{
//檔案控制程式碼
long hFile = 0;
//檔案資訊
struct _finddata_t fileinfo; //很少用的檔案資訊讀取結構
string p; //string類很有意思的一個賦值函式:assign(),有很多過載版本
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);
}
}
//測試
void main()
{
string DATA_DIR = "D:/CoderMaker/data_sets/lfw";
vector<string> files;
//測試
char * DistAll = "AllFiles.txt";
getAllFiles(DATA_DIR, files);//所有檔案與資料夾的路徑都輸出
ofstream ofn(DistAll); //輸出檔案流
int size = files.size();
int FaiNum = 0;
ofn << size << endl;
for (int i = 0; i<size; i++)
{
ofn << files[i] << endl;
}
ofn.close();
return 0;
}
測試結果
相關文章
- 獲取資料夾及其子資料夾下的所有檔案
- asp.net 遞迴刪除資料夾及其子資料夾和所有檔案[轉]ASP.NET遞迴
- python 如何刪除資料夾下的所有檔案和子資料夾?Python
- Linux統計某資料夾下檔案、資料夾的個數Linux
- c/c++、matlab讀取資料夾下的檔案C++Matlab
- 查詢某資料夾下所有子資料夾內的py檔案-3一行程式碼搞定行程
- php刪除資料夾及其下面的檔案PHP
- Win2000定時刪除資料夾內所有子資料夾和檔案
- [python] 資料夾所有檔案讀取,正則化,json使用PythonJSON
- matlab遍歷資料夾下的所有檔案Matlab
- 顯示所有檔案和資料夾"失效 解決無法顯示所有檔案和資料夾
- 如果報錯資訊說是無法刪除某個資料夾裡面的某個檔案
- android 統計資料夾大小及刪除資料夾下所有檔案和路徑Android
- Java使用執行緒池遞迴壓縮資料夾下面的所有子檔案Java執行緒遞迴
- C#讀取資料夾特定檔案的方法C#
- Android遞迴刪除資料夾下所有檔案Android遞迴
- linux刪除一個資料夾下面的多個資料夾Linux
- nodejs遞迴資料夾獲取所有檔案路徑NodeJS遞迴
- 把多個資料夾中的檔案批量放到一個資料夾
- java 獲取資料夾大小、檔案大小、檔案個數Java
- Python求取資料夾內的檔案數量、子資料夾內的檔案數量Python
- 遞迴遍歷磁碟下的某一資料夾中所有檔案,並copy檔案生成檔案和帶資料夾的檔案遞迴
- 畸形檔案 資料夾
- 【萬里征程——Windows App開發】檔案&資料——讀取檔案/資料夾名WindowsAPP
- 遞迴修改資料夾下面所有檔案裡面的的abc為abcde遞迴
- Qt 選擇資料夾、建立資料夾以及建立檔案QT
- 獲取一個資料夾下所有指定字尾名(.java)的檔案(包括子資料夾中的內容),並將這些檔案的絕對路徑寫入到一個文字檔案中Java
- linux刪除資料夾下所有檔案命令是什麼 linux刪除資料夾下內所有內容怎麼操作Linux
- C/C++遍歷資料夾和檔案C++
- .Net引用根目錄子資料夾下的dll檔案
- python列出資料夾所有檔案有哪些方法?Python
- NodeJs批量require資料夾中的所有檔案NodeJSUI
- C# 將資料夾中檔案複製到另一個資料夾C#
- 工作經驗: linux 壓縮當前資料夾下所有檔案Linux
- win10怎麼快速獲取資料夾內檔名 win10怎麼讀取資料夾內檔名Win10
- Node.js折騰記一:讀指定資料夾,輸出該資料夾的檔案樹Node.js
- .gitignore 在已忽略資料夾中不忽略指定檔案、資料夾...Git
- 使用C#選擇資料夾、開啟資料夾、選擇檔案C#