• 整个目录的拷贝


    自己的电脑上有些绿色软件,一般是放在D盘的一个目录下面,但是需要放在C盘使用,于是自己写了个拷贝或者更新的小程序练手。

    IOUtils 单元主要就是三个结构: TDirectory、TPath、TFile, 很有用。这次我用到了TDirectory。

    TDirectory.CreateDirectory();     {建立新目录}

    TDirectory.Exists();              {判断文件夹是否存在}

    TDirectory.IsEmpty();             {判断文件夹是否为空}

    TDirectory.Copy();                {复制文件夹}

    TDirectory.Move();                {移动文件夹}

    TDirectory.Delete();              {删除文件夹, 第二个参数为 True 可删除非空文件夹}

    TDirectory.GetDirectoryRoot();    {获取目录的根盘符, 如: C:}

    TDirectory.GetCurrentDirectory;   {获取当前目录}

    TDirectory.SetCurrentDirectory(); {设置当前目录}

    复制代码
    {这是实现拷贝一个目录的,源目录必须存在,目标目录如果存在,将重建。}
    function CopyOnePath(sDirName:String;sToDirName:String):Boolean;
    begin
      if not TDirectory.Exists(sDirName) then
      begin
       result:=false;
       exit;
      end;
      if TDirectory.Exists(sToDirName) then TDirectory.Delete(sToDirName,true);
      TDirectory.Copy(sDirName,sToDirName); {包括子目录在内,将全部复制。}
      result:=true;
    end;
    复制代码

    使用上面的系统函数,需要在头部包含:

    uses
    IOUtils;

    以前曾用过下面的代码,留作参考。

    复制代码
    function DoCopyDir(sDirName:String;sToDirName:String):Boolean;
    var
       hFindFile:Cardinal;
       t,tfile:String;
       sCurDir:String[255];
       FindFileData:WIN32_FIND_DATA;
    begin
       //记录当前目录
       sCurDir:=GetCurrentDir;
       ChDir(sDirName);
       hFindFile:=FindFirstFile('*.*',FindFileData);
       if hFindFile<>INVALID_HANDLE_VALUE then
       begin
            if not DirectoryExists(sToDirName) then
               ForceDirectories(sToDirName);
            repeat
                  tfile:=FindFileData.cFileName;
                  if (tfile='.') or (tfile='..') then
                     Continue;
                  if FindFileData.dwFileAttributes=
                  FILE_ATTRIBUTE_DIRECTORY then
                  begin
                       t:=sToDirName+''+tfile;
                       if  not DirectoryExists(t) then
                           ForceDirectories(t);
                       if sDirName[Length(sDirName)]<>'' then
                          DoCopyDir(sDirName+''+tfile,t)
                       else
                          DoCopyDir(sDirName+tfile,sToDirName+tfile);
                  end
                  else
                  begin
                       t:=sToDirName+''+tFile;
                       CopyFile(PChar(tfile),PChar(t),True);
                  end;
            until FindNextFile(hFindFile,FindFileData)=false;
          ///  FindClose(hFindFile);
       end
       else
       begin
            ChDir(sCurDir);
            result:=false;
            exit;
       end;
       //回到当前目录
       ChDir(sCurDir);
       result:=true;
    end;
    复制代码
    工作生活中,需要写个程序的时候就编个; 编写的过程中,需要用到的不会的就去网上搜个; 任务完成就好,不求闻达。
  • 相关阅读:
    [Angualr 2] Watch for changes
    [Angular 2] Custom Validtors
    [Angular 2] The form export from NgFormControl
    [Angular 2] Validation
    [Angualr 2] Using FormBuilder
    [Angular 2] ng-control & ng-control-group
    [Angular 2] NgNonBindable
    [Ruby] LEVEL 2 Methods and Classes
    [Rails Level 2] Ground up
    [AngularJS] 5 simple ways to speed up your AngularJS application
  • 原文地址:https://www.cnblogs.com/xionda/p/15140216.html
Copyright © 2020-2023  润新知