这个递归怎么写 (某个文件家下面(下面可能还有文件夹)所有的txt文件) 谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考:BOOL FindFolderFile(CString strFile, CStringList * pFileList)//查找文件函数{ CFileFind FileFind; CString SearchTarget = strFile;// + "\\" +strFilter; if(SearchTarget.Right(1) != "\\") { SearchTarget += "\\"; } SearchTarget += "*.*"; BOOL res = FileFind.FindFile(SearchTarget); while(res) { res = FileFind.FindNextFile();/* if(FileFind.IsDirectory() && !FileFind.IsDots()) { //如果是一个子目录,用递归继续往深一层找 CString strPath = FileFind.GetFilePath(); CString strTitle = FileFind.GetFileTitle(); FindFolderFile(strPath, pFileList); } else if(!FileFind.IsDirectory() && !FileFind.IsDots())*/ if(!FileFind.IsDirectory() && !FileFind.IsDots()) { //显示当前访问的文件 CString strExtName; CString strName; strName = FileFind.GetFileName(); strExtName = strName.Right(strName.GetLength() - strName.Find('.')-1); // strExtName.MakeUpper(); // if(!strExtName.CompareNoCase(strFilter))//扩展名正确 // { CString strPath = FileFind.GetFilePath(); pFileList->AddTail(strPath); // } } } FileFind.Close();//关闭 return TRUE;} FindFirstFile();//用".txt",就只找.txt文件。FindNextFile(); 解开代码中注释掉的那段。调用:CString str = "TXT";CStringList FileList;FindFolderFile(str,&FileList);返回的链表就是所有文件的完整路径了,你可以OpenFile,然后Write等等 复制文件夹SHFILEOPSTRUCT Op; char FromBuf[]="E:\\temp\0"; char ToBuf[]="\\\\SINTEKSERVER\\个人文档\\陈 伟\0";; Op.hwnd = NULL; Op.wFunc = FO_COPY; Op.pFrom = FromBuf; Op.pTo = ToBuf; Op.fFlags = FOF_NOCONFIRMATION | FOF_RENAMEONCOLLISION ; Op.fAnyOperationsAborted = FALSE; Op.hNameMappings = NULL; Op.lpszProgressTitle = NULL; if(SHFileOperation(&Op) == 0) MessageBox("复制完毕","提示",MB_OK|MB_ICONINFORMATION); 后台创建保存图片 list map vector Paint.Net 的问题 一般用installshield做安装程序,序列号是怎么干的? 关于GDI的问题 关于北京太极计算机股份有限公司 怎样能在LISTCTRL里显示树结构? 问一个弱弱的问题vc 的link error 想用WSAAsyncSelect()接受客户端的连接FD_ACCEPT 然后各自开辟线程来处理与客户端的数据通信 请问如何在Debug模式下让自己的程序控制IDE打开指定cpp文件,并定位到指定行,300分求教 大家新年好!问一个菜问题,关于宏. ?判断一个文件是否为文件夹?
BOOL FindFolderFile(CString strFile, CStringList * pFileList)//查找文件函数
{
CFileFind FileFind;
CString SearchTarget = strFile;// + "\\" +strFilter;
if(SearchTarget.Right(1) != "\\")
{
SearchTarget += "\\";
}
SearchTarget += "*.*";
BOOL res = FileFind.FindFile(SearchTarget);
while(res)
{
res = FileFind.FindNextFile();
/* if(FileFind.IsDirectory() && !FileFind.IsDots())
{
//如果是一个子目录,用递归继续往深一层找
CString strPath = FileFind.GetFilePath();
CString strTitle = FileFind.GetFileTitle();
FindFolderFile(strPath, pFileList);
}
else if(!FileFind.IsDirectory() && !FileFind.IsDots())
*/ if(!FileFind.IsDirectory() && !FileFind.IsDots())
{
//显示当前访问的文件
CString strExtName;
CString strName;
strName = FileFind.GetFileName();
strExtName = strName.Right(strName.GetLength() - strName.Find('.')-1);
// strExtName.MakeUpper();
// if(!strExtName.CompareNoCase(strFilter))//扩展名正确
// {
CString strPath = FileFind.GetFilePath();
pFileList->AddTail(strPath);
// }
}
}
FileFind.Close();//关闭
return TRUE;
}
FindNextFile();
CString str = "TXT";
CStringList FileList;
FindFolderFile(str,&FileList);
返回的链表就是所有文件的完整路径了,你可以OpenFile,然后Write等等
SHFILEOPSTRUCT Op;
char FromBuf[]="E:\\temp\0";
char ToBuf[]="\\\\SINTEKSERVER\\个人文档\\陈 伟\0";;
Op.hwnd = NULL;
Op.wFunc = FO_COPY;
Op.pFrom = FromBuf;
Op.pTo = ToBuf;
Op.fFlags = FOF_NOCONFIRMATION | FOF_RENAMEONCOLLISION ;
Op.fAnyOperationsAborted = FALSE;
Op.hNameMappings = NULL;
Op.lpszProgressTitle = NULL;
if(SHFileOperation(&Op) == 0)
MessageBox("复制完毕","提示",MB_OK|MB_ICONINFORMATION);