如何得到指定路径下的所有文件列表 高手指点一下,想得到当前目录下的PHOTO子目录下的所有文件列表。从中提取出后缀名为JPG或BMP的文件。这样我就可以将这些文件进行显示。编程小菜鸟,刚入门,大家多多包涵。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请参考void DeleteFileInDir(char* strFileNameFullPath){ WIN32_FIND_DATA FindFileData; HANDLE hFind; string strCurrentDir = strFileNameFullPath; string strTempDir = strFileNameFullPath; string strTempFileName = strTempDir; ERRCODE errRet; hFind = FindFirstFile((strTempDir.append("\\*")).c_str(), &FindFileData); if (hFind == INVALID_HANDLE_VALUE) { printf ("Invalid File Handle. Get Last Error reports %d\n", GetLastError ()); } else { do { if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if (!strcmp(FindFileData.cFileName, ".") || !strcmp(FindFileData.cFileName, "..")) { ; } else { strTempFileName = strCurrentDir + "\\"; strTempFileName = strTempFileName + FindFileData.cFileName; DeleteFileInDir((char*)strTempFileName.c_str()); } } else { strTempFileName = strCurrentDir + "\\"; strTempFileName = strTempFileName + FindFileData.cFileName; if(::DeleteFile(strTempFileName.c_str())) { cout << "file deleted: " << strTempFileName.c_str() << endl; } else { errRet = GetLastError(); switch (errRet) { case ERROR_FILE_NOT_FOUND: g_ConsoleCtrl.SetTextColor(FOREGROUND_BLUE); cout << "file delete failed: " << strTempFileName.c_str() << ", for : ERROR_FILE_NOT_FOUND " << endl; g_ConsoleCtrl.SetTextColor(); break; case ERROR_ACCESS_DENIED: g_ConsoleCtrl.SetTextColor(FOREGROUND_GREEN); cout << "file delete failed: " << strTempFileName.c_str() << ", for : ERROR_ACCESS_DENIED" << endl; g_ConsoleCtrl.SetTextColor(); break; default: g_ConsoleCtrl.SetTextColor(FOREGROUND_RED); cout << "file delete failed: " << strTempFileName.c_str() << ", error code : " << errRet << endl; g_ConsoleCtrl.SetTextColor(); break; } } } if (!FindNextFile(hFind, &FindFileData)) {// errRet = GetLastError(); break; } }while(TRUE); } FindClose(hFind); return;} 今天弄了一个能从网上下载房屋交友票务等信息的软件,不知什么原理? 在win2000或XP中有什么函数可以修改用户密码? 如何设置listctrl的行高? 各位,有关编辑框的问题,谢谢 在两个地方执行同一个SQL语句,为什么结果不一样? 谁有矩阵求逆程序(C++) 急!急!在线等待! 高分求知Windows下的事件日志格式! 请问如何在formview和一个普通的cview对象之间实现切换? __STDCALL 自动被编译成___CLRCALL 请教一个简单的算法,在线等候!! 一个工作者线程在PutFile()时阻塞了,不能继续下去,有什么方法可以结束这个线程呀 如何挂起一个时钟发生器
void DeleteFileInDir(char* strFileNameFullPath)
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
string strCurrentDir = strFileNameFullPath;
string strTempDir = strFileNameFullPath;
string strTempFileName = strTempDir;
ERRCODE errRet;
hFind = FindFirstFile((strTempDir.append("\\*")).c_str(), &FindFileData); if (hFind == INVALID_HANDLE_VALUE)
{
printf ("Invalid File Handle. Get Last Error reports %d\n", GetLastError ());
}
else
{
do
{
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if (!strcmp(FindFileData.cFileName, ".") || !strcmp(FindFileData.cFileName, ".."))
{
;
}
else
{
strTempFileName = strCurrentDir + "\\";
strTempFileName = strTempFileName + FindFileData.cFileName;
DeleteFileInDir((char*)strTempFileName.c_str());
}
}
else
{
strTempFileName = strCurrentDir + "\\";
strTempFileName = strTempFileName + FindFileData.cFileName;
if(::DeleteFile(strTempFileName.c_str()))
{
cout << "file deleted: " << strTempFileName.c_str() << endl;
}
else
{
errRet = GetLastError();
switch (errRet)
{
case ERROR_FILE_NOT_FOUND:
g_ConsoleCtrl.SetTextColor(FOREGROUND_BLUE);
cout << "file delete failed: " << strTempFileName.c_str() << ", for : ERROR_FILE_NOT_FOUND " << endl;
g_ConsoleCtrl.SetTextColor();
break; case ERROR_ACCESS_DENIED:
g_ConsoleCtrl.SetTextColor(FOREGROUND_GREEN);
cout << "file delete failed: " << strTempFileName.c_str() << ", for : ERROR_ACCESS_DENIED" << endl;
g_ConsoleCtrl.SetTextColor();
break; default:
g_ConsoleCtrl.SetTextColor(FOREGROUND_RED);
cout << "file delete failed: " << strTempFileName.c_str() << ", error code : " << errRet << endl;
g_ConsoleCtrl.SetTextColor();
break;
} }
} if (!FindNextFile(hFind, &FindFileData))
{
// errRet = GetLastError();
break;
} }while(TRUE);
}
FindClose(hFind);
return;
}