我想把E盘下不同目录中的*.MPG文件剪切到D盘的MPG文件夹中,但我不知道如何
把不同目录下的文件找到,请各位帮帮忙。

解决方案 »

  1.   

    调用dos命令。
    procedure TForm1.Button1Click(Sender: TObject);
    begin
       winexec('cmd /k move e:\*.mpg d:\mpg\',sw_hide);
    end;
      

  2.   

    用楼上的方法不错,还有一种方法代码量太大,我就不写了,具体思路就是循环遍历E盘下所有目录,发现了MPG文件就读取并在D盘MPG文件夹中创建一个同名文件开始写入,最后写入完成后删除原来E盘下的文件
      

  3.   

    var 
    T:TSHFileOpStruct;
    begin
     With T do
               Begin   //5
                Wnd:=0;
                wFunc:=FO_MOVE;
                pFrom:=Pchar(sourwebpath1);
                pTo:=Pchar(destwebpath1);
                fFlags:=FOF_SIMPLEPROGRESS;
                hNameMappings:=nil;
                lpszProgressTitle:='正在移动文件夹';
                fAnyOperationsAborted:=False;
               End;  //5
               SHFileOperation(T);end
      

  4.   

    winexec('cmd /k move e:\*.mpg d:\mpg\',sw_hide);
      

  5.   

    调用dos命令只能把根目录下的转移,无法把根目录下的文件转移
      

  6.   

    下面这个程序肯定可以实现。
    procedure Tform1.maketree;
    var
    sr:Tsearchrec;
    err:integer;
    begin
     err:=findfirst('*.*',$3f,sr);
     while (err=0) do
       begin
         if sr.Name[1]<>'.' then
           begin
             if (sr.Attr and fadirectory)=0 then
             begin
                  winexec('cmd /k move e:\*.mpg d:\mpg\',sw_hide);
             end;
             if (sr.Attr and fadirectory)=16 then
             begin
               chdir(sr.name);
               winexec('cmd /k move *.mpg d:\mpg\',sw_hide);
               maketree;
               chdir('..');
             end;
           end;
           err:=findnext(sr);
       end;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    chdir('e:\');
    maketree;
    end;