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

 ·关于高程的小问题    »显示摘要«
    摘要: casl汇编语言和一般汇编语言有什么区别?? 95年以前的高程考试流程图难否? ......
    摘要: 我在页面中要每分钟自动刷新本页面并执行相应的程序.但当我在页面中加入一个postback事件(比如,提交页面)后,就不能自动刷新了,一刷新就出现:"不重新发送信息,则无法刷新网页"的问题. 我试过以下方法可以最简单的方式重现错误: (1)新建以下页面: <body ms_positioning="gridlayout"> <fo......


如何找到文件夹下所有的文件,并把文件名显示到Memo1内

如何找到文件夹下所有的文件,并把文件名显示到Memo1内

NO.1   作者: fansses

void   __fastcall   SearchFile::FindFile(AnsiString   srcDir,TMemo   *Memo,TMemo   *memo1,TMemo   *memo2)  
  {  
          WIN32_FIND_DATA   FileData;  
          HANDLE   hSearch;  
          DWORD   dwAttrs;  
          AnsiString   SrcDir=srcDir+"*.*";  
          AnsiString   fName="";  
          unsigned   int   files=0;  
          AnsiString   ch;  
   
          BOOL   fFinished   =   FALSE;  
          hSearch   =   FindFirstFile((srcDir+"*.*").c_str(),   &FileData);  
          while   (!fFinished)  
          {  
                  fName=FileData.cFileName   ;  
                  bool   flag=true;  
                  if   (fName=="."||fName=="..")   flag=false;  
   
                  int   atr=FileData.dwFileAttributes   &faDirectory;  
               
                  //如果是文件夹  
                  if   (flag&&atr==faDirectory)  
                  {  
   
                          AnsiString   sDir=srcDir+fName;  
                          ch=*sDir.AnsiLastChar();  
                          if   (ch!=\\)   sDir+="\\";  
                          memo1->Lines->Add(srcDir+fName);  
                          FindFile   (srcDir+fName+"\\",Memo,memo1,memo2);  
   
                  }  
                  //如果是文件  
                  else   if   (flag)  
                  {  
                          if   (fName=="*.exe")  
                          memo2->Lines->Add(fName);  
                          else  
                          //判断是否是满足你要求的文件,是则操作此文件  
                          Memo->Lines->Add(srcDir+fName);  
                          Memo->Lines->Add(FileData.nFileSizeLow);  
   
   
                  }  
                  //搜索下一个文件  
                  if   (!FindNextFile(hSearch,   &FileData))  
                  {  
                          if   (GetLastError()   ==   ERROR_NO_MORE_FILES)  
                          {  
                                  fFinished   =   TRUE;  
                          }  
                  }  
          }  
          if   (!FindClose(hSearch))  
          {  
                  ShowMessage("无法关闭文件!");  
          }  
           
  }

NO.2   作者: SailorTPM

不用如此的,哥们有个变通的方法:  
  在window   3.1有个组件   TFileListBox  
  将Directory属性指向你的文件夹,它自动会列出所有在文件夹中的文件,遍历FileListBox,将它的内容读入你的Memo即可!  
  如果你只是用它的功能,建议new一个,用完了delete   即可

NO.3   作者: lywho

SailorTPM(提早二十年退休)   的方法偶没用过,但看起来好诱人!楼主请试一试。

NO.4   作者: singsing26

看来已经来晚了很多了

NO.5   作者: jbz

如果只是获取一个目录的文件名,使用   TFileListBox   控件会简单些。  
  不过我推荐使用FindFirst函数,比较灵活。而且是程序员应该具备的基本功。  
  下面是小例子。你可以把Pathname改成你需要的。  
   
  这里可以取得文件属性、文件大小等等可能有用的信息。  
   
  void   __fastcall   TForm1::Button1Click(TObject   *Sender)  
  {  
          TSearchRec   sr;  
          String   s,Pathname="c:\\";  
          int   Count   =   1;  
          if(FindFirst(Pathname+"*.*",faAnyFile,sr)   ==   0)  
          {  
                  do  
                  {  
                          //判断是文件  
                          if   ((sr.Attr&faDirectory)==0)  
                          {  
                                  s.printf("[%3d]   %s   文件大小=%d",Count++,sr.Name,sr.Size);  
                                  Memo1->Lines->Add(s);  
                          }  
                          else         //判断为目录:  
                                  if   (sr.Name!="."   &&   sr.Name!="..")  
                                  {  
                                          s.printf("[%3d]   %s   <目录>",Count++,sr.Name);  
                                          Memo1->Lines->Add(s);  
                                  }  
                  }   while   (FindNext(sr)   ==   0);  
                  FindClose(sr);  
          }  
  }  
  //---------------------------------------------------------------------------  
 


 ·小问题,送分,都来看看    »显示摘要«
    摘要: 我做了一个桌面窗口2d游戏的hook。 实现这样的功能:当鼠标双击时让鼠标移动到某个固定的地方然后按下游戏中的某个按钮。 遇到如下问题:游戏中使用立即接收方式,不接收鼠标消息,而是检查当前鼠标状态。所以无法让mouse_event()、sendinput()这些模拟鼠标操作的函数起作用。 变化一下mouse_event()、sendinput()虽然可以勉强实现,不过总觉得不直接,开销比较......
» 本期热门文章:

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