當前位置:首頁 » 知網查重 » mfc目錄遍歷

mfc目錄遍歷

發布時間: 2021-03-06 09:03:45

1. MFC 中文件夾的遍歷

一個類搞定 CFileFind
搜索這個名字就可以得到大量的源碼了。

2. mfc中怎麼遍歷指定目錄下的文件名字

static void TraverseDir(const string& dir, std::vector<string>& vec)
{
ff;
string temp_dir = dir+ "*.bin";
BOOL ret = ff.FindFile(temp_dir.c_str());
while (ret)
{
ret = ff.FindNextFile();
if (ret != 0)
{
if (ff.IsDirectory() && !ff.IsDots())
{
CString path = ff.GetFilePath();
//TraverseDir(path.GetBuffer(0), vec);
}
else if (!ff.IsDirectory() && !ff.IsDots())
{
//CString name = ff.GetFileName();
CString path = ff.GetFilePath();
vec.push_back(path.GetBuffer(0));
}
else
{
CString path = ff.GetFilePath();
int j = 0 ;
}
}
else
{
CString path = ff.GetFilePath();
if (path.Find(".bin")>0)
{
vec.push_back(path.GetBuffer(0));
}
}

}
ff.Close();
}

3. C++(MFC)得到文件夾路徑,之後怎麼遍歷文件夾裡面的文件(char*)保存

這個是刪除文件的用法,找到文件和刪除文件都差不多。用CFileFinder可以遍歷。

voidDelFiles(CString&strDirPath,CStringstrFileName,BOOLbDelAll)
{
CFileFindFileFinder;
strDirPath=strDirPath+_T("\");
CStringstrFilePath=strDirPath+strFileName;

while(TRUE)
{
if(FileFinder.FindFile(strFilePath))
{
FileFinder.FindNextFile();
CStringstrDelFilePath=FileFinder.GetFileName();
strDelFilePath=strDirPath+strDelFilePath;
DelDirectory(strDelFilePath);

if(!bDelAll)
{
break;
}
}
else
{
break;
}
}
FileFinder.Close();
}

4. MFC,遍歷文件夾。文件夾下有多個子文件夾,子文件夾中又有多個子文件。

網上這種文章和例子太多了,不復制了,自己版搜「cfilefind 遞歸 子目權錄」
http://wenku..com/view/282ecb1bff00bed5b9f31df3.html

5. MFC中遍歷當前目錄下的文件和文件夾,然後將所有找到的文件夾的名字提取出來

把以下代碼放到Win32控制台運行,親測可用:

#include <windows.h>
#define FILEILTER "*.*" //查找條件,例如查找.exe格式的那麼就用*.exe,當然也可以直接用setup.exe
#include "iostream.h"
#include "stdio.h"

BOOL IsRoot(LPCTSTR lpszPath)
{
TCHAR szRoot[4];
wsprintf(szRoot, "%c:\\", lpszPath[0]);
return (lstrcmp(szRoot, lpszPath) == 0);
}

void FindInAll(LPCTSTR lpszPath)
{
TCHAR szFind[MAX_PATH];
lstrcpy(szFind, lpszPath);
if (!IsRoot(szFind))
lstrcat(szFind, "\\");
lstrcat(szFind, FILEILTER); // 找所有文件
WIN32_FIND_DATA wfd;
HANDLE hFind = FindFirstFile(szFind, &wfd);
if (hFind == INVALID_HANDLE_VALUE) // 如果沒有找到或查找失敗
return;

do
{
if (wfd.cFileName[0] == '.')
continue; // 過濾這兩個目錄
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
TCHAR szFile[MAX_PATH];
if (IsRoot(lpszPath))
wsprintf(szFile, "%s%s", lpszPath, wfd.cFileName);
else
{
wsprintf(szFile, "%s\\%s", lpszPath, wfd.cFileName);
FindInAll(szFile); // 如果找到的是目錄,則進入此目錄進行遞歸
}
}
else
{
TCHAR szFile[MAX_PATH];
if (IsRoot(lpszPath))
{
wsprintf(szFile, "%s%s", lpszPath, wfd.cFileName);
}
else
{
wsprintf(szFile, "%s\\%s", lpszPath, wfd.cFileName);
printf("%s\n",szFile);
}
// 對文件進行操作
}
} while (FindNextFile(hFind, &wfd));
FindClose(hFind); // 關閉查找句柄

}
int main(int argc, char* argv[])
{
FindInAll("E:"); //這里設置目錄為E:,請根據需要更改
return 0;
}

6. MFC 如何遍歷當前文件夾下的文件夾

參考 vc範例開發大全 陳建國 實例207

7. 怎麼用MFC的類實現遍歷某個指定目錄下的所有目錄,包括他子目錄的子目錄

使用CFileFind遞歸遍歷,這是我寫的一個搜索文件的內例子。容
http://blog.csdn.net/charlessimonyi/article/details/8648837

8. MFC我想遍歷某個文件夾的所有文件並獲取文件大小,再把它們加起來

RefreshDataTemp(strPath);} //遞歸調用

這里你也寫了,是遞歸調用,那麼也就是子目錄的統計,是在另版一個(同名)函數調權用中完成的,而size和Size都是局部變數,不會傳遞到上一層函數調用。
解決方法:Size 作為返值或全局變數,tr的三行語句放在這個函數之外,不參與遞歸。

9. MFC如何遍歷一個文件夾下的所有文件夾(不是文件,是文件夾)

用下復面的程序段可以實現制你要求的功能

CFileFind ff;
CString strDir= "d:\\Program Files\\*.*";
BOOL res = ff.FindFile(strDir);
while(res)
{
res = ff.FindNextFile
if(ff.IsDirectory() && (!ff.IsDots()))();//遍歷子目錄,剔除".0」和".."兩個
{
CString strFile = ff.GetFileName();

// 在這里寫需要的代碼
}
}
ff.Close(); // 不要忘記關閉

若滿意請及時採納,謝謝

10. MFC 用樹控制項實現磁碟目錄遍歷

熱點內容
塗鴉論文 發布:2021-03-31 13:04:48 瀏覽:698
手機資料庫應用 發布:2021-03-31 13:04:28 瀏覽:353
版面217 發布:2021-03-31 13:04:18 瀏覽:587
知網不查的資源 發布:2021-03-31 13:03:43 瀏覽:713
基金贖回參考 發布:2021-03-31 13:02:08 瀏覽:489
懸疑故事範文 發布:2021-03-31 13:02:07 瀏覽:87
做簡單的自我介紹範文 發布:2021-03-31 13:01:48 瀏覽:537
戰略地圖參考 發布:2021-03-31 13:01:09 瀏覽:463
收支模板 發布:2021-03-31 13:00:43 瀏覽:17
電氣學術會議 發布:2021-03-31 13:00:32 瀏覽:731