将所有内容从源目录复制到新目录Delphi EX7

Studying.com

我的最终目标是将所有相关文件从一个文件夹复制到另一个文件夹。因此,例如,我们有C:\Users\Tool\Desktop\test\oldStuff在该文件夹中,oldStuff我们有更多文件夹以及一些mp3mp4txt文件。

现在,我想将所有小于GBmp4文件复制C:\Users\Tool\Desktop\test\New_Stuff_Less_than_a_Gig,并将大于GB.mp4文件复制到C:\Users\Tool\Desktop\test\New_STuff_Bigger_than_a_Gig

我虽然这很容易,但是我错了。到目前为止,不需要担心文件类型,所以就做到了*.*

 procedure TForm4.Button1Click(Sender: TObject);
 var
   f: TSearchRec;
   Dir: string;
 begin
    if not SelectDirectory(Dir,widestring(Dir),Dir) then   Exit;
    FileMode:=0;
    if FindFirst(Dir+'\*.*',faAnyFile,f) = 0 then
    repeat
         try
          if (f.Attr and faDirectory ) < $00000008 then
          CopyFile(PChar(Dir+'\'+f.Name),PChar
 ('C:\Users\Tool\Desktop\test\new\'+f.Name),false);
         except
          on e: exception do
            ShowMessage(E.Message);
         end;
    until findNext(f) <> 0
 end;

它将复制所选文件夹中的任何内容,但不会复制所选文件夹中的文件夹中的任何内容。例如,如果有C:\Users\Tool\Desktop\test\oldStuff\movie.mp4,它将复制Movie.mp4文件,但如果有C:\Users\Tool\Desktop\test\oldStuff\movies\Movie.mp4,将不会复制Movie.mp4文件。我虽然可以做这样的事情

CopyFile.size < 1000 (PChar('C:\Users\Tool\Desktop\test\oldStuff\*.*'+f.Name),
                   PChar('C:\Users\Tool\Desktop\test\new_Stuff\'+f.Name),false)

甚至只是

CopyFile (PChar('C:\Users\Tool\Desktop\test\old\*.*'+f.Name),
                   PChar('C:\Users\Tool\Desktop\test\new\'+f.Name),false);

但它没有复制任何内容。

肯·怀特

这是一个示例(在XE7中完成),可以完成您想要的操作。显然,您需要对其进行修改以适合您的需求;它具有硬编码的路径信息和文件掩码(* .png),并使用常数来确定文件的大小。

它基于以下示例目录树:

D:\TempFiles
  |--\Test
  |-----\A
  |-----\B
  |--------\SubB   
  |-----\NewFiles
  |-------\Large
  L-------\Small

它找到D:\ TempFiles \ Test及其子文件夹中的所有.png文件,并将等于或大于10KB的文件复制到D:\ TempFiles \ NewFiles \ Large,将小于10KB的文件复制D:\ TempFiles \ NewFiles \ Small

您需要将IOUtils添加Types到实现uses子句中。

procedure TForm1.Button1Click(Sender: TObject);
var
  aLargeFiles: TStringDynArray;
  aSmallFiles: TStringDynArray;
const
  LargeSize = 10 * 1024;
  SourcePath = 'D:\TempFiles\Test\';
begin
  aLargeFiles := TDirectory.GetFiles(SourcePath, '*.png',
                   TSearchOption.soAllDirectories,
                   function (const Path: string; const SR: TSearchRec): Boolean
                   begin
                     Result := (SR.Size >= LargeSize);
                   end);
  aSmallFiles := TDirectory.GetFiles(SourcePath, '*.png',
                   TSearchOption.soAllDirectories,
                   function(const Path: string; const SR: TSearchRec):Boolean
                   begin
                     Result := (SR.Size < LargeSize);
                   end);
  CopyFilesToPath(aLargeFiles, 'D:\TempFiles\NewFiles\Large\');
  CopyFilesToPath(aSmallFiles, 'D:\TempFiles\NewFiles\Small\');
end;

procedure TForm1.CopyFilesToPath(aFiles: array of string; DestPath: string);
var
  InFile, OutFile: string;
begin
  for InFile in aFiles do
  begin
    OutFile := TPath.Combine( DestPath, TPath.GetFileName( InFile ) );
    TFile.Copy( InFile, OutFile, True);
  end;
end;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将所有内容从源目录复制到新目录Delphi EX7

来自分类Dev

将/目录复制到另一个目录[OS:Centos-7]

来自分类Dev

使用文件结构将所有文件从源目录复制到C#中的目标目录

来自分类Dev

将源目录的内容复制到名称相同但大小写不同的目标目录

来自分类Dev

将html文件从源目录复制到构建目录

来自分类Dev

使用终端将内容/文件复制到目录中的所有子目录

来自分类Dev

如何将资源目录以及Jar中所有包含的文件和子文件夹复制到另一个目录中

来自分类Dev

如何将资源目录以及Jar中所有包含的文件和子文件夹复制到另一个目录中

来自分类Dev

使用cat命令将文件内容复制到目录下的所有文件(递归)

来自分类Dev

Bash脚本将目录结构从源目录复制到目标目录

来自分类Dev

使用Maven将多个资源目录复制到独立的目标目录

来自分类Dev

使用gradle将源目录列表下的文件复制到目标目录

来自分类Dev

将数据从嵌套的源目录复制到目标目录

来自分类Dev

将多个目录复制到新目录的更好方法

来自分类Dev

将特定文件批量复制到所有目录和子目录

来自分类Dev

如何使用scp将所有文件从目录复制到远程目录?

来自分类Dev

如何将所有文件/目录属性克隆/复制到不同的文件/目录?

来自分类Dev

将目录树中的所有文件复制到一个目录中

来自分类Dev

如何使用cp将目录中的所有目录从那里复制到另一个目录?

来自分类Dev

将目录的内容从Downloads复制到/ etc

来自分类Dev

将目录的内容从Downloads复制到/ etc

来自分类Dev

如何将工作目录复制到新提交

来自分类Dev

将syslog文件复制到Linux中的新目录

来自分类Dev

将PHP复制到新目录,可能吗?

来自分类Dev

将所有cookie * .txt文件从XP复制到Win7都能正常工作吗?

来自分类Dev

如何等待所有文件并复制到目录

来自分类Dev

如何将所有文件递归复制到Ruby中的平面目录?

来自分类Dev

如何将所有文件复制到与gulpfile相同的目录中?

来自分类Dev

将所有Maven依赖项从子级pom复制到目录

Related 相关文章

  1. 1

    将所有内容从源目录复制到新目录Delphi EX7

  2. 2

    将/目录复制到另一个目录[OS:Centos-7]

  3. 3

    使用文件结构将所有文件从源目录复制到C#中的目标目录

  4. 4

    将源目录的内容复制到名称相同但大小写不同的目标目录

  5. 5

    将html文件从源目录复制到构建目录

  6. 6

    使用终端将内容/文件复制到目录中的所有子目录

  7. 7

    如何将资源目录以及Jar中所有包含的文件和子文件夹复制到另一个目录中

  8. 8

    如何将资源目录以及Jar中所有包含的文件和子文件夹复制到另一个目录中

  9. 9

    使用cat命令将文件内容复制到目录下的所有文件(递归)

  10. 10

    Bash脚本将目录结构从源目录复制到目标目录

  11. 11

    使用Maven将多个资源目录复制到独立的目标目录

  12. 12

    使用gradle将源目录列表下的文件复制到目标目录

  13. 13

    将数据从嵌套的源目录复制到目标目录

  14. 14

    将多个目录复制到新目录的更好方法

  15. 15

    将特定文件批量复制到所有目录和子目录

  16. 16

    如何使用scp将所有文件从目录复制到远程目录?

  17. 17

    如何将所有文件/目录属性克隆/复制到不同的文件/目录?

  18. 18

    将目录树中的所有文件复制到一个目录中

  19. 19

    如何使用cp将目录中的所有目录从那里复制到另一个目录?

  20. 20

    将目录的内容从Downloads复制到/ etc

  21. 21

    将目录的内容从Downloads复制到/ etc

  22. 22

    如何将工作目录复制到新提交

  23. 23

    将syslog文件复制到Linux中的新目录

  24. 24

    将PHP复制到新目录,可能吗?

  25. 25

    将所有cookie * .txt文件从XP复制到Win7都能正常工作吗?

  26. 26

    如何等待所有文件并复制到目录

  27. 27

    如何将所有文件递归复制到Ruby中的平面目录?

  28. 28

    如何将所有文件复制到与gulpfile相同的目录中?

  29. 29

    将所有Maven依赖项从子级pom复制到目录

热门标签

归档