主题:vc下指定路径下获得文件名
kyl1988
[专家分:0] 发布于 2011-10-24 12:55:00
哪位大侠,帮小弟。我要在指定路径下获取所有文件的文件名,并将文件名显示在一个下拉框控件中。谢谢了!!!!
回复列表 (共1个回复)
沙发
winmain2008 [专家分:280] 发布于 2011-10-24 23:31:00
使用FindFirstFile和FindNextFile,具体怎样用这个两个函数我给你个例子。
DWORD ListAllFileInDrectory(LPSTR szPath)
{
CHAR szFilePath[MAX_PATH];
WIN32_FIND_DATA FindFileData;
HANDLE hListFile;
CHAR szFullPath[MAX_PATH];
lstrcpy(szFilePath, szPath);
lstrcat(szFilePath, "\\*");
hListFile = FindFirstFile(szFilePath,&FindFileData);
if(hListFile==INVALID_HANDLE_VALUE)
{
MessageBox(NULL,TEXT("文件路径找不到!"),NULL,MB_OK);
return 0;
}
else
{
do
{
if(lstrcmp(FindFileData.cFileName,TEXT(".")) == 0 ||
lstrcmp(FindFileData.cFileName,TEXT("..")) == 0)
{
continue;
}
wsprintf(szFullPath,"%s\\%s",szPath,FindFileData.cFileName);
if(FindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
{
ListAllFileInDrectory(szFullPath);
}
else
{
WIN32_FILE_ATTRIBUTE_DATA wfad;
GetFileAttributesEx(szFullPath,GetFileExInfoStandard,&wfad);
if(JudgeFileTime(&wfad.ftLastWriteTime))
{
DWORD dwFlag = FindFileData.dwFileAttributes&FILE_ATTRIBUTE_SYSTEM ||
FindFileData.dwFileAttributes&FILE_ATTRIBUTE_HIDDEN ||
FindFileData.dwFileAttributes&FILE_ATTRIBUTE_READONLY;
if(!dwFlag)
{
std::string insertItem;
++nTotalDelete;
insertItem = szFullPath;
if(!DeleteFile(szFullPath))
{
--nTotalDelete;
insertItem += TEXT("---删除失败");
}
else
{
insertItem += TEXT("---删除成功");
}
ListBox_AddString(hFileList,insertItem.c_str());//向空间插入文件
}
}
}
}while(FindNextFile(hListFile, &FindFileData));
}
return 0;
}
我来回复