在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
自己的电脑上有些绿色软件,一般是放在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;
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论