当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·com+组件远程访问拒绝的问题    »显示摘要«
    摘要: dim obj as object set obj = createobject("gpsserv.server.1", "ty") obj.setport (1) 在行此出现"拒绝访问"的提示 原提示: run time error "70" permission denied ......
    摘要: 最近做程序,需要一些smb协议的内容,现分数100,可以再加 ......


怎样搜索文件系统里的所有文件

怎样搜索文件系统里的所有文件?我以前采用的方法是FindFirst,FindNext,FindClose的一套方法,但缺点是对于某些文件和文件夹总是不能识别。有没有其它好的方法?或者改进Find系列函数的方法?

NO.1   作者: bigwhiteshark

//---------------------------------------------------------------------------      
  #include         <vcl.h     >      
  #pragma     hdrstop      
  #include         "Unit1.h     "      
  //---------------------------------------------------------------------------      
  #pragma     package(smart_init)      
  #pragma     resource         "*.dfm     "      
  TForm1     *Form1;      
  //---------------------------------------------------------------------------      
  __fastcall     TForm1::TForm1(TComponent*     Owner)      
                                :     TForm(Owner)      
  {      
  }      
  //---------------------------------------------------------------------      
     
  void     __fastcall     GetDirectoryFile(AnsiString     Dir)      
  {      
            HANDLE     FindHandle;      
            bool     NextFind;      
            WIN32_FIND_DATA     wfd;      
            AnsiString     FileName;      
            //ShowMessage(     "1:     "+FileName);      
            if(Dir[Dir.Length()]     !=     \\)      
                        Dir     =     Dir     +         "\\     ";      
            //ShowMessage(     "2:     "+Dir);      
            FindHandle     =     FindFirstFile(AnsiString(Dir+     "*.*     ").c_str(),&wfd);      
            while(FindHandle     !=     INVALID_HANDLE_VALUE)      
            {      
                        FileName     =     AnsiString(wfd.cFileName);      
                        //ShowMessage(     "3:     "+FileName);      
                        if(FileName     !=         ".     "     &&     FileName     !=         "..     ")      
                        {      
                                    if((wfd.dwFileAttributes     &     FILE_ATTRIBUTE_DIRECTORY)     ==     FILE_ATTRIBUTE_DIRECTORY)      
                                    {      
                                                //ShowMessage(     "Now:     in     to     GetDirectoryFile     ");      
                                                GetDirectoryFile(Dir     +     AnsiString(wfd.cFileName));      
                                    }      
                                    else      
                                    {      
                                                if(ExtractFileExt(FileName)==     "exe     ")//在这里出现了问题始终为假      
                                                        ShowMessage(FileName+ExtractFileExt(FileName));      
                                                Form1-     >Memo1-     >Lines-     >Add(Dir     +     FileName);      
                                                //continue;      
                                    }      
                        }     NextFind     =     FindNextFile(FindHandle,&wfd);      
                        if(!NextFind)     break;      
            }     FindClose(FindHandle);      
  }      
     
  void     EnumAllFiles()      
  {      
                char     buf[128];      
            GetLogicalDriveStrings(128,     buf);      
                for(char*     s=buf;     *s;     s+=4)      
                        GetDirectoryFile(s);      
  }      
  void     __fastcall     TForm1::Button2Click(TObject     *Sender)      
  {      
    EnumAllFiles();      
    Label1-     >Caption=IntToStr(Memo1-     >Lines-     >Count);      
  }      
  //---------------------------------------------------------------------------


    摘要: 我自己做了一个activex插件,想显示jpeg文件,看了这里的文章,发现可以用ipicture.不过,其中的ipicture中的render()函数需要cdc指针,可是我的ondraw()函数是atl_drawinfo类型的,怎么才能在插件中获得当前的cdc指针,或者直接像mfc一样,在ondraw()中传递cdc指针呢? 我编程的水平不高,希望能详细讲解一下, 谢谢!! ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE