读书人

VC里用哪个API可以遍历获得某一目录下

发布时间: 2012-03-11 18:15:39 作者: rapoo

VC里用哪个API可以遍历获得某一目录下所有文件名字符串?
不想用控件,不要MFC那一套,
最好是单个API的,越简单越好,先谢了

[解决办法]
FindFirstFile那FindNext......依次枚举
[解决办法]
filename = new CString[x];//x为文件个数,可以枚举出来

CFileFind filefind;
CString string= "bug\\*.dat ";
int i = 0;
if(filefind.FindFile(string,0)!=0)
{
while(filefind.FindNextFile()!=0)
{
filename[i] = filefind.GetFilePath();
i++;
}
filename[i] = filefind.GetFilePath();
}
[解决办法]
FindFirstFile, FindNextFile, FindClose
[解决办法]
不想用控件,不要MFC那一套,
--------
那你就得罗嗦点了:
void FindMyFile()
{
WIN32_FIND_DATA FileData;
HANDLE hSearch;

int nCount=0;
BOOL fFinished = FALSE;
// Start searching for .TXT files in the current directory.

hSearch = FindFirstFile( "D:\\*.txt ", &FileData);
if (hSearch == INVALID_HANDLE_VALUE)
{
MessageBox(NULL, "No *.txt files found. ", "你好! ",MB_OK);
}

while (!fFinished)
{
nCount++;
MessageBox(NULL,FileData.cFileName, "dd ",MB_OK);//把文件名字显示出来
if (!FindNextFile(hSearch, &FileData))
{
if (GetLastError() == ERROR_NO_MORE_FILES)
{
MessageBox(NULL, "No more *.txt files. ",
"Search completed. ", MB_OK);
fFinished = TRUE;
}
else
{
MessageBox(NULL, "Couldn 't find next file. ", "你好! ",MB_OK);
}
}

}

// Close the search handle.

if (!FindClose(hSearch))
{
MessageBox(NULL, "Couldn 't close search handle. ", "你好! ",MB_OK);
}

char buf[20]= " ";
sprintf(buf, "有%d个TXT文件 ",nCount);
MessageBox(NULL,buf, "你好! ",MB_OK);
}

[解决办法]
CFileFind

读书人网 >VC/MFC

热点推荐