A. MFC 怎样查找指定的文件
用CFileFinder 类进行查找
void Recurse(LPCTSTR pstr)
{
CFileFind finder;
// build a string with wildcards
CString strWildcard(pstr);
strWildcard += _T("\\*.*");
// start working for files
BOOL bWorking = finder.FindFile(strWildcard);
while (bWorking)
{
bWorking = finder.FindNextFile();
// skip . and .. files; otherwise, we'd
// recur infinitely!
if (finder.IsDots())
continue;
// if it's a directory, recursively search it
if (finder.IsDirectory())
{
CString str = finder.GetFilePath();
cout << (LPCTSTR) str << endl;
Recurse(str);
}
}
finder.Close();
}
B. 为什么MFC中的文件查找器
代码贴出来看看
没这么干过,一般都是写一个普通的函数去查找文件,然后新建一个thread去调这个函数。这样做比较好。
C. C++MFC查找指定文件并替换它
你好,希望我的回答对你有帮助
1.我已做了一个示例工程(VC6下编译通过),下载地址:http://sites.google.com/site/qiujiejia1/Home/Path_Demo.zip
2.以下是部分代码,仅供参考:
if (TRUE==PathFileExists("c:\\qq.exe"))
{
DeleteFile("c:\\qq.exe.bak"); //如果原来已经存在qq.exe.bak,则删除
MoveFile("c:\\qq.exe","c:\\qq.exe.bak"); //把qq.exe备份为qq.exe.bak
if (FALSE==CopyFile("qq2.exe","c:\\qq.exe",FALSE) ) //复制
MessageBox("Can not the file");
}
3.如果你是初学,分享些资料给你,望对你有所帮助。
http://hi..com/qiujiejia/blog/item/d4c65efd71183e1f09244dc2.html
D. MFC中Find的具体用法
1、CFileFind类的声明文件保存在afx.h头文件中。
2、该类的实现的功能:执行本地文件的查找(查找某个具体的文件,查找某类文件x*.x*,查找所有文件*.*)
3、CFileFind类是CGopherFileFind和CFtpFileFind类的基类。
4、CFileFind类的构造函数::CFileFind()和关闭函数::Close()我会成对使用。
5、CFileFind类的成员函数我根据其操作特性划分为3类:查找操作类、获得文件属性类、判断文件属性类。(下面我先进行函数罗列并没有完整的描述函数的参数)
查找操作类
::FindFile();
::FindNextFile();
获得文件属性类
::GetCreationTime();
::GetLastAccessTime();
::GetLastWriteTime();
::GetFileName();
::GetRoot();
::GetFilePath();
::GetFileTitle();
::GetFileURL();
::GetLength();
判断文件属性类
::IsArchived();
::IsCompressed();
::IsDirectory();
::IsDots();
::IsHidden();
::IsNormal();
::IsReadOnly();
::IsSystem();
::IsTemporary();
::MatchesMask();
6、CFileFind类中成员函数使用应注意的顺序
在创建了CFileFind对象后,先执行::FindFile()函数,然后执行::FindNextFile(),然后选择执行(获得文件属性类)的函数或者(判断文件属性类)函数。
E. mfc如何使用多线程搜索文件夹
1、根据API中的文件和目录操作函数构成一个具有递归功能的目录遍历和文件查找
2、可以根据MFC中对线程的封装格式,将上述操作放入线程函数中
3、更多交流参考我空间文章。
F. MFC怎么查找当前目录以及子目录下的*_DS.TXT文件
在应用程序的开发过程中,会遇到如何查找某一文件以确定此文件路径的问题。利用CFileFind类可以比较方便地在当前目录下进行文件查找,但却不能对其子目录中的文件进行搜寻。而实际应用中往往需要对某一整个目录树,甚至是整个C盘或D盘驱动器进行文件搜寻。通过实践,我们在Visual C++ 6.0中编程实现了如何遍历任意目录树,以查找某一特定的文件。
在下面的具体陈述中可以看到,在确定要查找的文件名和要进行搜索的目录的名称后,将调用函数Search_Directory进行文件的查找。首先依次查找当前目录下的每一个实体(文件或是子目录),如果是某一子目录,则进入该子目录并递归调用函数Search_Dirctory进行查找,查找完毕之后, 再返回上一级目录;如果不是子目录而是某一文件,则判断其是否就是我们要查找的文件,如果是则输出其完整的文件路径。这样,通过Search_Directory函数的反复递归调用,就可以实现对整个目录,包括子目录的遍历搜索。下面将举例详细讲述如何在VC++中编程实现在整个目录树中的文件查找。
1. 在Visual C++ 6.0中用默认方式创建了一基于对话框的应用程序Search。在主窗口对话框上放置一命令按钮,其Caption为“Search File”,ID为ID_BUTTON_SEARCH。单击此按钮将完成文件的查找工作。
2. 利用ClassWizard为“Search File”按钮的BN_CLICKED 事件添加处理函数OnButtonSearch,代码如下:
#include 〈direct.h〉
#include 〈io.h〉
void CSearchDlg::OnButtonSearch()
{
// TODO: Add your control notification handler code here
char szFilename[80];
// 字符串 szFilename 表示要查找的文件名
strcpy(szFilename,"Mytext.txt");
_chdir("d:\\"); // 进入要查找的路径(也可为某一具体的目录)
// 查找文件, 如果查到则显示文件的路径全名
Search_Directory(szFilename);
// 为CSearchDlg类的一成员函数
MessageBox(″查找文件完毕!″);
// 显示查找完毕的信息
}
3. 在CSearchDlg类中增加成员函数Search_Directory,它将完成具体的文件查找工作,代码如下:
void CSearchDlg::Search_Directory(char* szFilename)
{
long handle;
struct _finddata_t filestruct;
//表示文件(或目录)的信息
char path_search[_MAX_PATH];
//表示查找到的路径结果
// 开始查找工作, 找到当前目录下的第一个实体(文件或子目录),
// "*"表示查找任何的文件或子目录, filestruct为查找结果
handle = _findfirst("*", &filestruct);
// 如果handle为-1, 表示当前目录为空, 则结束查找而返回
if((handle == -1)) return;
// 检查找到的第一个实体是否是一个目录(filestruct.name为其名称)
if( ::GetFileAttributes(filestruct.name) & FILE_ATTRIBUTE_DIRECTORY )
{
// 如果是目录, 则进入该目录并递归调用函数Search_Dirctory进行查找,
// 注意: 如果目录名的首字符为'.'(即为"."或".."), 则不用进行查找
if( filestruct.name[0] != '.' )
{
_chdir(filestruct.name);
Search_Directory(szFilename);
// 查找完毕之后, 返回上一级目录
_chdir("..");
}
}
else // 如果第一个实体不是目录, 则检查是否是要查找的文件
{
// stricmp对两字符串进行小写形式的对比, 返回为0表示完全一致
if( !stricmp(filestruct.name, szFilename) )
{
// 先获得当前工作目录的全路径
_getcwd(path_search,_MAX_PATH);
// 再获得文件的完整的路径名(包含文件的名称)
strcat(path_search,"\\");
strcat(path_search,filestruct.name);
MessageBox(path_search); //输出显示
}
}
// 继续对当前目录中的下一个子目录或文件进行与上面同样的查找
while(!(_findnext(handle,&filestruct)))
{
if( ::GetFileAttributes(filestruct.name) & FILE_ATTRIBUTE_DIRECTORY )
{
if(*filestruct.name != '.')
{
_chdir(filestruct.name);
Search_Directory(szFilename);
_chdir("..");
}
}
else
{
if(!stricmp(filestruct.name,szFilename))
{
_getcwd(path_search,_MAX_PATH);
strcat(path_search,"\\");
strcat(path_search,filestruct.name);
MessageBox(path_search);
}
}
}
_findclose(handle);
// 最后结束整个查找工作
}
这样我们就可以对整个目录进行遍历搜索,查找某一特定的文件,并输出显示其完整的文件路径。以上的程序在Visual C++ 6.0中已调试通过。
G. 怎样用mfc找出文件夹路径,并读取文件夹内所有图片
CFileFind find;
CString Path = lpszPath;
CString lpsz = Path +L"\\";
Path = Path +L"\\*.*";
BOOL IsFind = find.FindFile(Path);
while(IsFind )
{
IsFind=find.FindNextFile();
//如果是"."则不扫描
if(find.IsDots())
continue;
//是目录,继续扫描此目录
else if(find.IsDirectory())
{
CString strPath = lpszPath;
strPath = strPath + L"\\" + find.GetFileName();
ScanDiskFile(strPath);
}
//文件
else
{
//获得文件的路径
m_strFile = find.GetFileName();
CString extend = m_strFile.Right(m_strFile.GetLength() - m_strFile.ReverseFind('.') - 1);//取得扩展名
if (extend == m_ext_one | extend == m_ext_two)//m_ext_now为你要查找的文件扩展名
{
m_strArray.Add(lpsz + m_strFile);
}
}
}
find.Close();
m_ext_one、m_ext_two用于指定需要搜索的文件后缀名
H. 查找 mfc711.dll 文件
系统中有许多DLL动态链接库文件,它们一般存放在系统盘下Windows\System32文件夹中,当运行某一程序时将会调用相应的DLL文件。而由于DLL文件是可以被多个程序共享的,所以当卸载或安装一些程序时,很容易将其一起卸载掉或进行不正确的修改操作。如果在试图打开系统信息程序,来查看系统状态时出现没有找到就说明.DLL文件已丢失了,解决这类故障的一般方法如下:比如:MFC42u.DLL文件的提示错误的解决方法!首先,在Windows XP的安装光盘中查找是否有MFC42u.DLL文件,如果有直接将该文件复制到Windows\System32文件夹中即可。如果是压缩格式的(类似上例中的rundll32.ex_文件),那么可使用expand命令将光盘中的文件解压到System32文件夹中。 如果找不到MFC42u.DLL文件,也找不到其压缩格式(本例正是这种情况),那么这时在微软的搜索页面(网址为: http://search.microsoft.com/search/search.aspx?st=b&na=80&qu=&View=zh-cn)输入“MFC42u.DLL”作为搜索关键字进行搜索,然后打开相关的搜索页面查看相关内容。根据打开的页面提示内容,要想获得这个MFC42u.Dll文件,我们可以安装微软开发的Vcredist.exe程序来获得。这样下载并安装该程序后,可在其安装文件夹中找到MFC42u.DLL文件,将其复制到System32文件夹中即可。 如果你觉得这样比较麻烦,那么可到一些专业DLL文件下载网站进行下载,比如 http://www.2dll.com,这样只要在网页中找到相应的下载链接并将其下载到相应的文件夹中即可修复。当然,如果有条件也可以在其它电脑上复制相关的文件来修复。 小提示:有些DLL文件复制到相应的目录后还需要进行注册,假如System32文件夹中的abc.dll文件需要系统进行注册认证,这时可在运行窗口中执行“regsvr32 c:\windows\system32\abc.dll”命令,进行组件的注册操作即可
I. MFC打开文件,怎么设置查找文件的路径求高手解答........
关于CFile的文件路径,分两种方式,一种是绝对路径,一种是相对路径。回
绝对路径就是”D:\a\xx.txt"的形式,你可以直接指答定,也可以用CFileDialog弹出对话框由用户界面指定;
相对路径分默认路径和工作路径获取两种。你可以用".\aa\xx.txt"指定默认目录子目录或者省略前面的.\也是可以的;工作路径获取比较靠谱(因为默认路径可能会造成不确定性,在程序运行过程中可能会被其它原因改变),工作路径要在程序运行入口的时候通过GetCurrentDirectory函数获取并保存起来,方便随时使用,这个是一个例如"d:\yourProject\"的字符串形式,每次拼接子目录和文件名即可,示例代码如下:
charpBuf[MAX_PATH];//存放路径的变量
GetCurrentDirectory(MAX_PATH,pBuf);//获取程序的当前目录
strcat(pBuf,"\");
CStringstrtemp=pBuf;
J. 我的电脑出现mfc140u.dll丢失该怎么办
1、通过一定的途径获取到mfc140u.dll文件,例如网上寻找并下载。
2、将mfc140u.dll文件复制到“C:\Windows\System32”这个目录下。
3、点击“开始菜单”,选择“运行”按钮,输入:regsvr32 mfc140u.dll,点击确定。
4、此时弹出安装完成mfc140u.dll文件的提示,点击确定。