博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
整个目录的拷贝 - Delphi - TDirectory
阅读量:4562 次
发布时间:2019-06-08

本文共 2285 字,大约阅读时间需要 7 分钟。

自己的电脑上有些绿色软件,一般是放在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;

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

usesIOUtils;

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

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;

 

转载于:https://www.cnblogs.com/sures/p/6013803.html

你可能感兴趣的文章
Cortex-M3 异常返回值EXC_RETURN
查看>>
kettle 转换字段遇到问题(couldn't get row from result set)——摘
查看>>
nginx首页根据IP跳转
查看>>
【2019-08-20】有点目标,有点计划,有点目的
查看>>
【2019-09-10】美,真的跟年龄无关
查看>>
【2019-09-28】少,但更好
查看>>
【2019-09-13】耐心观察是一种技能
查看>>
mysql数据库2-常用命令
查看>>
安卓开发环境搭建(转)
查看>>
Harris角点检测
查看>>
Struts2的处理流程及为Action的属性注入值
查看>>
设计中最常用的CSS选择器
查看>>
Maven项目打包成可执行Jar文件
查看>>
nginx http proxy 正向代理
查看>>
对BFC的总结
查看>>
23醒
查看>>
win7每天出现taskeng.exe进程的解决方案
查看>>
React Children
查看>>
大数据等最核心的关键技术:32个算法
查看>>
Maven多模块项目搭建
查看>>