• 歡迎訪問奇跡の海網站,本站不上傳任何資源,所有資源均來自于網絡,歡迎加入奇跡の海~!奇跡の海-WordPress QQ群
  • 本站下載資源為網絡上收集整理而來,并且以計算機技術研究交流為目的,版權歸原作者所有,僅供大家參考,學習,不存在任何商業目的與商業用途.
  • 本站系統鏡像均來自于官方原版,ed2k可視為P2P下載鏈接。所有操作系統默認均為試用版,如有正版密鑰可以有效激活,本站不提供任何激活和相關服務。

AU3遍歷(查詢)文件夾下所有文件,并輸出保存在txt

AutoIT3 奇跡の海 2年前 (2017-06-19) 624次瀏覽 已收錄 0個評論 掃描二維碼

實例介紹

文件夾下全是.png的圖片,需把每張圖片名保存在txt供程序讀取

#include<iostream>  
#include "io.h"  
#include<fstream>  
using namespace std;  
  
ofstream MyFile("FileName.txt");  
  
bool transfer(string fileName , int txtNum = 0)  
{  
    _finddata_t fileInfo;  
    long handle = _findfirst(fileName.c_str(), &fileInfo);  
  
    if (handle == -1L)  
    {  
        cerr<< "failed to transfer files" <<endl;  
        return false;  
    }  
  
    do   
    {  
        txtNum ++;  
        MyFile<< fileInfo.name <<endl;  
    } while (_findnext(handle, &fileInfo) == 0);  
    cout<< " .txt files' number:  " << txtNum <<endl;;  
  
    return true;  
}  
  
void main()  
{  
    //ofstream MyFile(FileName.txt);  
  
    string FilePath="C:\\Users\\Administrator\\Desktop\\HOG+SVM\\數據集\\INRIAPerson\\INRIAPerson\\INRIAPerson\\96X160H96\\Train\\pos\\*.png";//注意通配符* ? 的用法,這個就是尋找XXX.png的文件,不管有多少個XXX, 如果是?.png,就是一個X,即X.png  
    int num=0;  
  
    transfer(FilePath,num);  
  
}  

AU3遍歷(查詢)文件夾下所有文件,并輸出保存在txt

參考這個帖子的:http://www.cnblogs.com/summerRQ/articles/2375749.html

2. 遍歷文件夾及其子文件夾下所有文件。操作系統中文件夾目錄是樹狀結構,使用深度搜索策略遍歷所有文件。用到_A_SUBDIR屬性,可運行程序如下:

void dfsFolder(string folderPath, ofstream &fout)  
{  
    _finddata_t FileInfo;  
    string strfind = folderPath + "\\*";  
    long Handle = _findfirst(strfind.c_str(), &FileInfo);  
      
    if (Handle == -1L)  
    {  
        cerr << "can not match the folder path" << endl;  
        exit(-1);  
    }  
    do{  
        //判斷是否有子目錄  
        if (FileInfo.attrib & _A_SUBDIR)      
        {  
            //這個語句很重要  
            if( (strcmp(FileInfo.name,".") != 0 ) &&(strcmp(FileInfo.name,"..") != 0))     
            {  
                string newPath = folderPath + "\\" + FileInfo.name;  
                dfsFolder(newPath, fout);  
            }  
        }  
        else    
        {  
            fout << folderPath << "\\" << FileInfo.name  << " ";  
        }  
    }while (_findnext(Handle, &FileInfo) == 0);  
  
    _findclose(Handle);  
    fout.close();  
}  

在判斷有無子目錄的if分支中,由于系統在進入一個子目錄時,匹配到的頭兩個文件(夾)是”.”(當前目錄),”..”(上一層目錄)。需要忽略掉這兩種情況。當需要對遍歷到的文件做處理時,在else分支中添加相應的代碼就好
PS:突然在網上看到一個絕技!
在許多樣本的那個目錄下新建一個文本txt,在其中輸入如下:
dir /b/s/p/w *.png>train_list.txt
@pause
保存,改為.bat文件運行,就直接可以生成一個train_list.txt,里面包含目錄
方法二:

利用Directory類實現文件夾中特定格式圖像的遍歷,Directory的頭文件是windows.h。

  
#include<opencv2/opencv.hpp>  
#include<iostream>  
#include<vector>  
#include<string>  
#include <windows.h>  
  
using namespace std;  
using namespace cv;  
  
  
void main()  
{  
    Directory dir;  
  
    string path1 = "C:\\Users\\Administrator\\Desktop\\date\\MIT\\MIT人臉庫\\faces";  
    string  exten1 = "*.bmp";  
  
    vector<string> filenames = dir.GetListFiles(path1, exten1, false);  
  
    int size = filenames.size();  
  
    for (int i = 0; i < size;i++)  
    {  
        cout << filenames[i] << endl;  
    }  
}  

參見:http://blog.csdn.net/hei_ya/article/details/51387624


版權聲明:本站所有文章和資源使用CC BY-NC-SA 4.0協議授權發布 , 轉載應當以相同方式注明文章來自“SeaOMC.COM->AU3遍歷(查詢)文件夾下所有文件,并輸出保存在txt!在下邊可以分享本文哦!
喜歡 (0)
[]
分享 (0)
奇跡の海
關于作者:
一個WordPress菜鳥!
發表我的評論
取消評論

表情 貼圖 加粗 刪除線 居中 斜體 簽到

Hi,您需要填寫昵稱和郵箱!

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址
中国福利彩票36选7开奖结果