查找指定目录下的文件

 

使用CFindFile类, 此类主要是用来查找文件的,首先调用 FindFile() 函数 ,来开始查找过程,然后调用FindNextFile来得到后续的文件信息等。

 

 

注意: 此类在vs控制台下不能编译成功,只能在MFC运行才可以

 

 

 

MSDN中的解释为:

 

Call this member function to open a file search.

virtual BOOL FindFile(
   LPCTSTR pstrName = NULL,
   DWORD dwUnused = 0 
);
例子:
 
Example 
      
      
      
      

This small program recurses every directory on the C:/ drive and prints the name of the directory.

#include <afxwin.h>
#include <iostream>

using namespace std;

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();
}

int main()
{
   if (!AfxWinInit(GetModuleHandle(NULL), NULL, GetCommandLine(), 0))
      cout << "panic!" << endl;
   else
      Recurse(_T("C:"));
}
 
 
其它网络资料:
 
 
           
           
           
           
现有很多优化软件 在做删除 系统冗余文件时 会把LJ文件的名字 显示在一个列表中 供用户删除.
这就用到了遍历文件夹下所有文件的技术了. 于是就像自己写一个出来. 但以前都没接触过 所以查了下MSDN 输入 findfile尽然有这样的函数 暗喜还有代码实例 稍微改了下一点点的代码 如果再修改下 可以做成删除特定的一组文件也可以自己做一个删除系统LJ的软件 有待大家去发挥想像力了
对此函数说明如下:
Call this member function to open a file search.


virtual BOOL FindFile(
LPCTSTR pstrName = NULL,
DWORD dwUnused = 0
);

After calling FindFile to begin the file search, call FindNextFile to retrieve subsequent files. You must call FindNextFile at least once before calling any of the following attribute member functions:

说的是此函数用于开始一个文件查找,当查找到之后,可以调用FindNextFile连续得查找一组文件
=============================

#include <afxwin.h>
#include <iostream>

using namespace std;

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;

           CString sFileName = finder.GetFileName();
          cout << (LPCTSTR)sFileName << endl;
//输出查找文件夹下的所有文件名

  }

   finder.Close();
}

int main()
{
  if (!AfxWinInit(GetModuleHandle(NULL), NULL, GetCommandLine(), 0))
//初始化MFC

      cout << "panic!" << endl;
  else
       Recurse(_T("C:"));
        return 0;
}

 
参考资料:
http://hi.baidu.com/kobe731/blog/item/4a8ba7efc0d6aa32adafd56f.html
http://www.vckbase.com/document/viewdoc/?id=620

你可能感兴趣的:(function,String,File,null,search,Build)