如何遍历磁盘罗列所有指定后缀名文件
int main()
{
Search("F:","*.txt");
return true;
}
bool Search(TCHAR *Path,TCHAR *File)
{
HANDLE hFind;
WIN32_FIND_DATA wfd;
ZeroMemory(&wfd,sizeof(WIN32_FIND_DATA));
TCHAR PathTemp[512];
memset(PathTemp,0,sizeof(PathTemp));
sprintf(PathTemp,"%s\\*.*",Path);
hFind=FindFirstFile(PathTemp,&wfd);
if(INVALID_HANDLE_VALUE==hFind)
{
MessageBox(NULL,"INVALID_HANDLE_VALUE","FindFirstFile",MB_OK);
return false;
}
do
{
if('.'==wfd.cFileName[0])
{
continue;
}
if(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
sprintf(PathTemp,"%s\\%s",Path,wfd.cFileName);
//MessageBox(NULL,PathTemp,"Directory",MB_OK);
printf(PathTemp);
printf("\n");
Search(PathTemp,File);
}
else
{
if(0==strcmp(File,wfd.cFileName))
{
sprintf(PathTemp,"%s\\%s",Path,wfd.cFileName);
MessageBox(NULL,"Found",PathTemp,MB_OK);
//printf(PathTemp);
//printf("\n");
}
}
}while(FindNextFile(hFind,&wfd));
FindClose(hFind);
return true;
}
怎么改改啊?
[解决办法]
在cmd窗口中执行以下命令:
del c:\alltxt.txt >NUL 2>NUL
dir c:\*.txt /b /s /a-d >>c:\alltxt.txt
dir d:\*.txt /b /s /a-d >>c:\alltxt.txt
dir e:\*.txt /b /s /a-d >>c:\alltxt.txt
dir f:\*.txt /b /s /a-d >>c:\alltxt.txt
然后看文件c:\alltxt.txt的内容
[解决办法]
假马甲
[解决办法]
system("dir /b /a-d c:\\*.* >d:\\allfiles.txt");
//读文件d:\\allfiles.txt的内容即C:\\下所有文件的名字
system("dir /b /ad c:\\*.* >d:\\alldirs.txt");
//读文件d:\\alldirs.txt的内容即C:\\下所有子目录的名字
请记住,能用shell命令获取文件、文件夹信息或者操作文件、文件夹最好用shell命令获取或者操作,而不要用各种API获取或者操作,因为当遇到非法文件夹名或非法文件名或非法文件长度、非法文件日期、压缩文件、链接文件、稀疏文件……等各种意料之外的情况时,API会处理的不全面或陷入死循环,而shell命令不会。
[解决办法]
sprintf(PathTemp,"%s\\*.*",Path);
*.*这里替换成你需要的扩展名就可以
[解决办法]
远程你不会“映射网络驱动器”吗?