程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> TListView組件顯示文件夾中的文件

TListView組件顯示文件夾中的文件

編輯:Delphi

  procedure GetDirectories(list: TlistVIEw; Directory: string; Item: Tlistitem; IncludeFiles: boolean);
  var
  SearchRec: TSearchRec;
  begin
     list.Items.BeginUpdate;//准備更新
     list.Items.Clear;  //清空list內容
     if Directory[length(Directory)] <> '' then //判斷路徑 
           Directory := Directory + '';  //設置路徑
     if FindFirst(Directory + '*.*',faDirectory,SearchRec) = 0 then       begin
               repeat   
               if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] <> '.') then  
                   begin
                          if (SearchRec.Attr and faDirectory > 0) then                               begin  Item := list.Items.Add;  //增加item
                                          item.Caption:=SearchRec.Name; 
                                          item.ImageIndex:=6;
                                end;
                          GetDirectorIEs(list,Directory + SearchRec.Name,Item,IncludeFiles);
                   end
                                 else
                 if IncludeFiles then
                              if SearchRec.Name[1] <> '.' then
                                      begin
                                             item:=list.Items.Add;
                                             item.Caption:=SearchRec.Name;
                                             item.ImageIndex:=6;
                                      end;
                        until FindNext(SearchRec) <> 0;
  //FindClose(SearchRec);
                 end;
        list.Items.EndUpdate;
  end;

  定義Directory:

  procedure makedir(modulname,pathname,dirname,filepath:string);//創建目錄(共4級,朋友如果覺得用得上的話,可以自己加參數)
  begin
  try
      if not directoryexists(frootpath+modulname) then
        createdir(FRootPath+modulname);
      if not DirectoryExists(FRootPath+modulname+''+pathname) then
      createdir(FRootPath+modulname+''+pathname);
      if not directoryexists(FRootPath+modulname+''+pathname+''+dirname) then
      createdir(FRootPath+modulname+''+pathname+''+dirname);
      if filepath<>'' then
      if not directoryexists(FRootPath+modulname+''+pathname+''+dirname+''+filepath) then
      createdir(FRootPath+modulname+''+pathname+''+dirname+''+filepath)
      except
      On E:Exception do begin
      abort;
      end;
      end;
      banjin.N21.Enabled:=true;
     liucheng.MenuItem1.Enabled:=true;
     yanzheng.N21.Enabled:=true;
      banjin.SpeedButton1.Enabled:=true;
      liucheng.SpeedButton1.Enabled:=true;
      yanzheng.SpeedButton1.Enabled:=true;
      banjin.toolbutton1.Enabled:=true;
      liucheng.toolbutton1.Enabled:=true;
      yanzheng.toolbutton1.Enabled:=true;
      if filepath='' then
      filespath:=FRootPath+modulname+''+pathname+''+dirname+''+filepath else
      filespath:=FRootPath+modulname+''+pathname+''+dirname+''+filepath+'';
      banjin.StatusBar1.Panels[0].Text:='你目前所在的位置:'+filespath;
      liucheng.StatusBar1.Panels[0].Text:='你目前所在的位置:'+filespath;
      yanzheng.StatusBar1.Panels[0].Text:='你目前所在的位置:'+filespath;
  end;
  如果是二級或一級目錄的話,只要加上if filepath<>'' then
  類似的判斷就可以了,例如:makedir('設計規范','電子件','電路設計規范','');

   

  注:在這裡寫的兩個過程沒有實現讀取Windows的圖標,如果想實現這一功能的話要自己動手寫了 ^_^

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved