VC遍歷訪問目錄下的檔案

2022-07-04 02:24:08 字數 1258 閱讀 5343

訪問目錄資料夾下的檔案是經常需要的操作,c/c++和win32介面都沒有提供直接呼叫的函式。在這裡總結了幾個經常用到的函式,通過mfc的cfilefind函式遞迴遍歷實現,包括以下幾個功能函式:

查詢目錄下所有的資料夾;

查詢目錄下所有的檔案(不遍歷目錄的目錄);

查詢目錄下所有的檔案(遍歷目錄的目錄) ;

查詢目錄下某一型別檔案 (不遍歷目錄的目錄);

查詢目錄下某一型別檔案 (遍歷目錄的目錄);

//查詢目錄下所有的資料夾

void findfolder(string dir, vector&folderpath)

} filefinder.close();

}//查詢目錄下所有的檔案(不遍歷目錄的目錄)

void finddirfilenoformat(string dir, vector&filepath)

else

}filefinder.close();

}//查詢目錄下所有的檔案(遍歷目錄的目錄)

void findallfilenoformat(string dir, vector&filepath)

//if (filefinder.isdirectory())

else

}filefinder.close();

}// 查詢目錄下某一型別檔案 (不遍歷目錄的目錄)

void finddirfile(string dir, string format, vector&filepath)

else

}filefinder.close();

}//得到檔案路徑的格式字尾

string getpathformat(string filepath)

format.erase(0, p);

return format;

}// 查詢目錄下某一型別檔案 (遍歷目錄的目錄)

void finddirallfileex(string dir, vector&format, vector& filepath)

if (filefinder.isdirectory())

else

}if (flag)

findpath.releasebuffer();

} }filefinder.close();

}

有一點值得注意的是我這裡函式的引數都封裝成stl的string,在多位元組下可以直接使用,在unicode下需要稍微修改下cstring與string的轉換。

VC 遍歷指定目錄下的檔案

用於輸出指定目錄下的所有檔案的檔名,包括子目錄。版本1 用string處理,方便,容易理解.include include include using namespace std bool isroot string path void findinall string path else 找到的是...

VC 遍歷指定目錄下的檔案

用於輸出指定目錄下的所有檔案的檔名,包括子目錄。版本1 用string處理,方便,容易理解.include include include using namespacestd boolisroot stringpath voidfindinall stringpath else 找到的是檔案 wh...

vc 遍歷目錄下的檔案與總數

使用 findfirstfile和 findnextfile方法 include stdafx.h include include include define len 1024 int filecount 0 深度優先遞迴遍歷目錄中所有的檔案 bool directorylist lpcstr p...