您的位置:首页 > 编程语言

FindFirstFile FindNextFile FindFiles 文件查找非常简单的代码

2014-06-02 15:54 429 查看
地址: FindFirstFile FindNextFile FindFiles 文件查找非常简单

FindFirstFile,FindNextFile,FindFiles,文件查找非常简单的代码,非常适合初学者学习,NanShan
在这里给大家发出来了,代码亲测过可以正常运行:

//查找文件

HANDLE WINAPI FindFirstFile(

__in LPCTSTR lpFileName,//文件名或路径

__out LPWIN32_FIND_DATA lpFindFileData

);

//查找下一个文件

BOOL WINAPI FindNextFile(

__in HANDLE hFindFile,

__out LPWIN32_FIND_DATA lpFindFileData

);

typedef struct _WIN32_FIND_DATA {

DWORD dwFileAttributes; //文件属性

FILETIME ftCreationTime; //创建时间

FILETIME ftLastAccessTime; //最近访问时间

FILETIME ftLastWriteTime; //最近修改时间

DWORD nFileSizeHigh; //高位大小

DWORD nFileSizeLow; //低位大小

DWORD dwReserved0; //保留

DWORD dwReserved1; //保留

TCHAR cFileName[MAX_PATH];//文件名,非全路径

TCHAR cAlternateFileName[14];

}WIN32_FIND_DATA,*PWIN32_FIND_DATA,*LPWIN32_FIND_DATA;

复制代码

void FindFiles(CString &strPath)

{

WIN32_FIND_DATA findData;

CString strTemp = strPath;

strTemp.Format(_T("%s\\*.*"), strPath);//查找指定目录下的直接的所有文件和目录

HANDLE hFile = FindFirstFile(strTemp, &findData);

while (hFile != INVALID_HANDLE_VALUE)

{

if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)//如果是目录

{

if(findData.cFileName[0] != _T('.'))//排除.和..文件夹

{

strTemp = strPath+ CString("\\") + findData.cFileName;//获得完整路径

FindFiles(strTemp);//递归查找当前目录的文件

}

}

else

{

strTemp = strPath+ CString("\\") + findData.cFileName;

}

if(!FindNextFile(hFile, &findData))

{

break;

}

}

}

复制代码
FindFirstFile,FindNextFile,FindFiles,文件查找非常简单的代码,非常适合初学者学习,NanShan 在这里给大家发出来了,代码亲测过可以正常运行:

01.//查找文件

02.HANDLE WINAPI FindFirstFile(

03. __in LPCTSTR lpFileName,//文件名或路径

04. __out LPWIN32_FIND_DATA lpFindFileData

05.);

06.

07.//查找下一个文件

08.BOOL WINAPI FindNextFile(

09. __in HANDLE hFindFile,

10. __out LPWIN32_FIND_DATA lpFindFileData

11.);

12.

13.typedef struct _WIN32_FIND_DATA {

14. DWORD dwFileAttributes; //文件属性

15. FILETIME ftCreationTime; //创建时间

16. FILETIME ftLastAccessTime; //最近访问时间

17. FILETIME ftLastWriteTime; //最近修改时间

18. DWORD nFileSizeHigh; //高位大小

19. DWORD nFileSizeLow; //低位大小

20. DWORD dwReserved0; //保留

21. DWORD dwReserved1; //保留

22. TCHAR cFileName[MAX_PATH];//文件名,非全路径

23. TCHAR cAlternateFileName[14];

24.}WIN32_FIND_DATA,*PWIN32_FIND_DATA,*LPWIN32_FIND_DATA;

复制代码

01.void FindFiles(CString &strPath)

02.

03.{

04. WIN32_FIND_DATA findData;

05.

06. CString strTemp = strPath;

07. strTemp.Format(_T("%s\\*.*"), strPath);//查找指定目录下的直接的所有文件和目录

08.

09. HANDLE hFile = FindFirstFile(strTemp, &findData);

10. while (hFile != INVALID_HANDLE_VALUE)

11. {

12. if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)//如果是目录

13. {

14. if(findData.cFileName[0] != _T('.'))//排除.和..文件夹

15. {

16.

17. strTemp = strPath+ CString("\\") + findData.cFileName;//获得完整路径

18. FindFiles(strTemp);//递归查找当前目录的文件

19. }

20. }

21. else

22. {

23. strTemp = strPath+ CString("\\") + findData.cFileName;

24. }

25.

26. if(!FindNextFile(hFile, &findData))

27. {

28. break;

29. }

30. }

31.

32.}

复制代码


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐