導航:首頁 > 版本升級 > vc遍歷所有文件

vc遍歷所有文件

發布時間:2023-04-26 20:16:14

『壹』 VC++程序如何遍歷一個文件夾下面的所有子文件夾下的文件

find(char * lpPath)
{
char szFind[MAX_PATH];
WIN32_FIND_DATA FindFileData;
strcpy(szFind,lpPath);
strcat(szFind,"*.*");
HANDLE hFind=::FindFirstFile(szFind,&FindFileData);
if(INVALID_HANDLE_VALUE == hFind) return;
while(TRUE)
{
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if(FindFileData.cFileName[0]!='.')
{
strcpy(szFile,lpPath);
strcat(szFile,"");
strcat(szFile,FindFileData.cFileName);
find(szFile);
}
}
else
{
cout << FindFileData.cFileName;
}
if(!FindNextFile(hFind,&FindFileData)) break;
}
FindClose(hFind);
}

#include <afxwin.h>
#include <iostream>

using namespace std;

void Recurse(LPCTSTR pstr)
{
CFileFind finder;

// build a string with wildcards

CString strWildcard(pstr);
strWildcard += _T("\\*.*");

// start working for files

BOOL bWorking = finder.FindFile(strWildcard);

while (bWorking)
{
bWorking = finder.FindNextFile();

// skip . and .. files; otherwise, we'd

// recur infinitely!

if (finder.IsDots())
continue;

CString sFileName = finder.GetFileName();
cout << (LPCTSTR)sFileName << endl;//輸出查找文件夾下的所有文件名

}

finder.Close();
}

int main()
{
if (!AfxWinInit(GetMoleHandle(NULL), NULL, GetCommandLine(), 0))//初始化MFC

cout << "panic!" << endl;
else
Recurse(_T("C:"));
return 0;
}

『貳』 C語言如何遍歷目錄 (C++也可以) findfirst findnext怎麼用

#include <windows.h>
#include <stdio.h>
FILE *fp;
void findFile(char filePath[])//這個是你要的函數
{
char szFind[MAX_PATH];//這是要找的
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
char szFile[MAX_PATH];

strcpy(szFind,filePath);
strcat(szFind,"\\*.*");//利用通配符找這個目錄下的所以文件,包括目錄

hFind=FindFirstFile(szFind,&FindFileData);
if(INVALID_HANDLE_VALUE == hFind) return;

while(TRUE)
{

if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)//這是目錄
{
if(FindFileData.cFileName[0]!='.')//.表示當前目錄,因為每個目錄下面都有兩個默認目錄就是..和.分別表示上一級目錄和當前目錄
{
strcpy(szFile,filePath);
strcat(szFile,"\\");
strcat(szFile,FindFileData.cFileName);
findFile(szFile);//尋找這個目錄下面的文件
}
}
else
{
fprintf(stdout,"%s\\%s\n",filePath,FindFileData.cFileName);//列印出目錄下的文件的路徑和名稱
fprintf(fp,"%s\\%s\n",filePath,FindFileData.cFileName);//這將結果存檔到c:\\path.txt中。
}
if(!FindNextFile(hFind,&FindFileData))//尋找下一個文件
break;
}
FindClose(hFind);//關閉句柄
}

int main()
{
fp = fopen("C:\\path.txt","w");
findFile("D:\\e-book\\實習\\隨筆\\讀書ing");//這里是你要遍歷的目錄,你自己可以改變,它會顯示這個目錄下的所有文件,包括這個目錄下子目錄下的文件。
fclose(fp);
return 0;
}
程序如上,是把結果輸出到標准輸出上,並且存檔到C:\\path.txt中。
可以運行的,我已經測試過。
工具是vc6.0.

『叄』 請問如何用c語言實現遍歷查找磁碟下的exe文件 我是在VC6.0平台下

調用DOS 命令 dir 就可以了。
如果只要顯示文件名,加 選項 /B
如果要顯示所有子文件夾里的文件名, 加 選項 /S
例如 DIR C:\*.exe /B /S
如果要把顯示 轉向到文件 DIR C:\*.exe /B /S >> abc.lis
DOS 命令 可以用 sprintf 做成,用 system() 讓它執行。
程序如下:
#include <stdio.h>
#include <stdlib.h>
main(){
char cmd[80];
char d;
for (d='C';d<='Z';d++) // 對 磁碟號 C: D: E: .....Z: 循環
{
sprintf(cmd,"DIR %c:\\*.exe /B",d); // 命令
// printf("%s\n",cmd); // 檢查 命令字元串 是否正確
system(cmd); // 執行
}
return 0;
}

『肆』 VC下如何遍歷文件夾及嵌套文件夾

void CTestDDlg::FindFile(CString strPath)
{
if (strPath.Right(3) != _T("*.*"))
strPath.Append(_T("\\*.*"));

CFileFind m_find;
BOOL bFind = m_find.FindFile(strPath);
while (bFind)
{
bFind = m_find.FindNextFile(); if (!m_find.IsDots())
{
if (m_find.IsDirectory())
{
FindFile(m_find.GetFilePath());
}
else
{
// 文件使用_find.GetFilePath()取得路徑
}
}
}
} 調用示例:FindFile(_T("E:\\KuGou"));

『伍』 VC6.0遍歷查找文件

clude <windows.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, "*.*"); // 找所有文件
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:\\result");
return 0;
}
//結合網上資料寫出的,作者--楊克群^_^

『陸』 vc 如何遍歷C盤下所有的文件夾

使用CFileFind類實現。

『柒』 vc++中如何遍歷文件夾裡面的文件


代碼見圖

『捌』 在windows下 怎麼用c語言遍歷文件夾要用純c的

什麼叫純C?
用C語言遍歷文件肯定需要用到函數,標准C下貌似沒有這個函數內,但容是使用VC的函數庫可能可以實現,如果實在不行可以用第三方函數庫,,,還不行的話用system("command");引用dos命令可以遍歷,

『玖』 vc如何遍歷全盤(包括子目錄)

int count_file(char *dir)
{
_finddata_t p;//定義一個結構體存放文件屬性
int n,n1;
char *a;
n=strlen(dir);a=new char [n+100];n1=0;
strcpy(a,dir);strcat(a,"\\*.*");
if((n=_findfirst(a,&p))!=-1L)//調用文件查找函數
{
if(strcmp(p.name,".")&&strcmp(p.name,".."))
{
if((p.attrib&_A_SUBDIR))//文件是否為文件夾
{
int n2=strlen(dir)+strlen(p.name);
char *b=new char [n2+10];strcpy(b,dir);
strcat(b,"\\");strcat(b,p.name);
n1+=count_file(b);//遞歸調用 作用是返迴文件夾內的文件總數
n1++;
delete(b);
}
}
while(_findnext(n,&p)==0)//尋找下一個文件
{
if(strcmp(p.name,".")&&strcmp(p.name,".."))
{
if((p.attrib&_A_SUBDIR))
{
int n2=strlen(dir)+strlen(p.name);
char *b=new char [n2+10];strcpy(b,dir);
strcat(b,"\\");strcat(b,p.name);
n1+=count_file(b);delete(b);n1++;
}
else n1++;
}
}
_findclose(n);//結束尋找
}
delete(a);return n1;//返迴文件總個數
}

『拾』 關於VC++下遍歷目錄文件,請高手來啊,高分懸賞,問題解決加分懸賞150 急急急!!!!

INVALID_HANDLE_VALUE 就是被微軟本定義為-1 的,但是直接寫-1的話,編譯器會提示類型不匹配,所以需要強制轉換一下。

HANDLE FindFirstFile(
LPCTSTR lpFileName, // file name
LPWIN32_FIND_DATA lpFindFileData // data buffer
);
該函數到一個文件夾(包括子文件夾)去搜索指定文件 如果要使用附加屬性去搜索文件的話 可以使用FindFirstFileEx函數
HANDLE hFindFile搜索的文件句柄 函數執行的時候搜索的是此句柄的下一文件
LPWIN32_FIND_DATA lpFindFileData 指向一個用於保存文件信息的結構體
如果調用成功返回一個句柄,可用來做為FindNextFile 或 FindClose參數
調用失敗 返回為INVALID_HANDLE_VALUE(即-1) ,可調用GetLastError來獲取錯誤信息

閱讀全文

與vc遍歷所有文件相關的資料

熱點內容
華為手機里可以刪掉哪些文件夾 瀏覽:989
一斤數據線有多少銅 瀏覽:571
我的微信沒有聊天文件 瀏覽:835
betterzip如何壓縮文件 瀏覽:792
復制代碼到keil 瀏覽:568
windowsxp搜索文件 瀏覽:480
在常州騎單車用什麼app 瀏覽:572
linuxdev設備文件 瀏覽:323
手機哪個app能把卷子調清晰 瀏覽:111
阿里雲雲資料庫延遲多少ms 瀏覽:278
javasqlddl 瀏覽:425
有關程序員的歌 瀏覽:295
文件所以格式 瀏覽:197
win10壞了備份 瀏覽:852
當代大學生的網路文化有哪些突出特點 瀏覽:620
蘋果表皮白白的啥物質 瀏覽:541
網站在線客服插件代碼 瀏覽:786
ae項目文件默認儲存的格式為 瀏覽:266
網路同傳硬碟保護功能 瀏覽:548
adb啟動應用程序 瀏覽:10

友情鏈接