标签:sDirName begin end Delphi tfile sToDirName TDirectory 拷贝
自己的电脑上有些绿色软件,一般是放在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;
工作生活中,需要写个程序的时候就编个; 编写的过程中,需要用到的不会的就去网上搜个; 任务完成就好,不求闻达。
标签:sDirName,begin,end,Delphi,tfile,sToDirName,TDirectory,拷贝 来源: https://www.cnblogs.com/xionda/p/15140216.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。