想做个简单的硬盘搜索文件的程序
(输入文件名,输出路径)
各位有做过吗?
windows自带的搜索引擎是怎么搜的?

解决方案 »

  1.   


    #include <afxwin.h>
    #include <iostream>using namespace std;void Recurse(LPCTSTR pstr)
    {
    CFileFind finder;// build a string with wildcardsCString strWildcard(pstr);
    strWildcard += _T("\\*.*");// start working for filesBOOL bWorking = finder.FindFile(strWildcard);while (bWorking)
    {
    bWorking = finder.FindNextFile();// skip . and .. files; otherwise, we'd// recur infinitely!
    if (finder.IsDots())
    continue;CString sFileName = finder.GetFileName();
    cout << (LPCTSTR)sFileName << endl;//输出查找文件夹下的所有文件名}finder.Close();
    }int main()
    {
    if (!AfxWinInit(GetModuleHandle(NULL), NULL, GetCommandLine(), 0))//初始化MFCcout << "panic!" << endl;
    else
    Recurse(_T("C:"));
    return 0;
    }
      

  2.   

    windows是直接在文件系统中搜索目录项的,FAT和NTFS实现的方法也不同
    要是装了索引服务,windows会定时搜索文件,并通过分词技术,提取出关键字,存到数据库中,这样搜索起来就会快很多