程序段
可以实现你要求的功能
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()
//
不要忘记关闭
若满意请及时采纳,谢谢
// 此函数实现遍历指定路径中的文件。你需要做的就是验证文件的后缀名。#include "iostream"
#include "windows.h"
using namespace std
void show_file(char path[], int level = 0)
{
char find_path[128]
sprintf(find_path, "%s*", path)
WIN32_FIND_DATA FindFileData
HANDLE hFind
bool bContinue = true
hFind = FindFirstFile(find_path, &FindFileData)
if (hFind == INVALID_HANDLE_VALUE)
return
while (bContinue)
{
if (stricmp(FindFileData.cFileName, "..") && stricmp(FindFileData.cFileName, "."))
{
for (int i = 0 i < level ++i)
cout<<" "
cout<<FindFileData.cFileName<<endl
if (FindFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
sprintf(find_path, "%s%s\\", path, FindFileData.cFileName)
show_file(find_path, level + 1)
}
}
bContinue = FindNextFile(hFind, &FindFileData)
}
}
int main()
{
char szPath[] = "c:\\windows\\"
show_file(szPath)
return 0
}
这个是删除文件的用法,找到文件和删除文件都差不多。用CFileFinder可以遍历。
void DelFiles(CString& strDirPath, CString strFileName, BOOL bDelAll){
CFileFind FileFinder
strDirPath = strDirPath + _T("\\")
CString strFilePath = strDirPath + strFileName
while (TRUE)
{
if (FileFinder.FindFile(strFilePath))
{
FileFinder.FindNextFile()
CString strDelFilePath = FileFinder.GetFileName()
strDelFilePath = strDirPath + strDelFilePath
DelDirectory(strDelFilePath)
if (!bDelAll)
{
break
}
}
else
{
break
}
}
FileFinder.Close()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)