飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3001|回复: 0

TListView组件显示文件夹中的文件

[复制链接]
  • TA的每日心情
    开心
    2019-9-19 16:05
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2007-2-12 09:56:21 | 显示全部楼层 |阅读模式
    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的图标,如果想实现这一功能的话要自己动手写了 ^_^
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表