我用SelectDirectory()选取目录,要把选取的这个目录中的所有文件名读入LISTBOX,请问该怎么做?
如果用SelectDirectory函数不能实现的话,有其他方法吗?
我刚学习DELPHI,希望各位高手不吝赐教。谢谢!

解决方案 »

  1.   

    其实我的本意是读取选择的文件名(多个)。但用OpenDialog选取多个文件的时候,OpenDialog1.FileName只能读到最后一个选择的文件名,似乎前几个都被覆盖了。万般无奈之下只有先将目录中的所有文件读入LISTBOX,再从LISTBOX中选。
    OpenDialog到底能不能读取多个文件名,如果可以,请告诉我方法,谢谢大家。
      

  2.   

    不要用ListBox了,用Win3.1标签页上的FileListBox吧!也不用编程就能用!只要设置它的Directory属性就可以了!
      

  3.   

    设置TOpenDialog的属性Options中ofAllowMultiSelect为true:begin
      if OpenDialog1.Execute then
        ComboBox1.Items.Assign(OpenDialog1.Files);
    end;————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  4.   

    或者:
    var
      Path: String;
    begin
      Path := 'g:\*.*';  //Path指定文件所在路径
      SendMessage(ListBox1.Handle, LB_DIR, DDL_READWRITE, Integer(Path));
    end;————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  5.   

    遍历目录,把文件名放进去:
    (我自己写的代码 可能有点问题,你在调试调试)
    procedure TForm1.Button1Click(Sender: TObject);
    var sr:TSearchRec;
        Err:integer;
        s:TStringList;
        TempStr:string;
    begin
    s:=TStringList.Create;//查找文件
    Err:=FindFirst('f:\'+'*.*',$37,sr);
    while Err=0 do
      begin
      if (sr.Name[1]<>'.') and (sr.Attr and faDirectory>0) then
         s.Add(sr.Name);
      Err:=FindNext(sr);
      end;ListBox1.Items:=s;