如何用C++读取未知文件名的文件(用C++程序依次读取某一目录下的所有文件)

来源:百度知道 编辑:UC知道 时间:2024/05/26 07:54:00
C++读取未知文件名的文件(用C++程序依次读取某一目录下的所有文件)

编写c++程序,依次打开某一目录下(如 C:\test\)的所有文件(文本或二进制),并进行读的操作。

我现在正在写一个程序,需要扫描一个目录下的所有文件,并判断文件中是否有我给出的关键字。求:在不知道文件名的情况下,如何扫描一个目录下的所有文件。
请尽量写出详细的注释,谢谢!

随便写的大概的思路吧,没编译过可以会有错:
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
BOOL fFinished = FALSE;
char FindPath[]={"C:\\Text\\*.*"};//搜索路径
char Key[]="找";//关键字
FILE *pFile;
char *pBuf;
DWORD dwSize;
hFind = FindFirstFile(FindPath, &FindFileData);//开始一个搜索

if (hFind != INVALID_HANDLE_VALUE)
{
while (!fFinished)
{
pFile=fopen(FileData.cFileName,"r");
dwSize=GetFileSize(pFile,NULL);
pBuf=new char[dwSize+1];
fread(pBuf,1,dwSize,pFile);
if(strstr(Key,pBuf))
{
//找到了然后干点什么
}
delete pBuf;
fclose(pFile);
if (!FindNextFile(hFind, &FileData))
{
if (GetLastError() == ERROR_NO_MORE_FILES)
{
MessageBox(hwnd, "No more .TXT files.","Search completed.", MB_OK);
fFinished = TRUE;