文件复制 ( 积分: 50 )

  • 主题发起人 主题发起人 xhj12077021
  • 开始时间 开始时间
X

xhj12077021

Unregistered / Unconfirmed
GUEST, unregistred user!
个位DFW
我要复制的文件有100多个,我利用内存块读写buffer实现,主管不让用这种方法。哪位DFW有什么比较到的方法吗?
 
部分代码:
VAR
Fos : TSHFileOpStruct;
Buf : array[0..400] of char;
p : pchar;
begin
//读取需要备份的文件列表

FillChar(Buf, sizeof(Buf), #0) ;
p := @buf;
p := StrECopy(p, 'D:/OPERView/*.par') + 1;
p := StrECopy(p, 'D:/OPERView/*.dll') + 1;
p := StrECopy(p, 'D:/OPERView/*.res') + 1;
p := StrECopy(p, 'D:/OPERView/*.seq') + 1;
p := StrECopy(p, 'D:/OPERView/*.exe') + 1;


p := StrECopy(p, 'D:/OPERView/GradFile') + 1;
sDest := 'e:/operview backup/';
FillChar(Fos, sizeof(Fos), #0) ;

//开始备份

with Fos do
begin
Wnd := Handle;
wFunc := FO_COPY;
pFrom := @Buf;
pTo := pchar(sDest+trim(Edit1.Text)+','+FormatDateTime('yyyy-mm-dd hh-mm-ss',Now)+','+trim(Edit2.Text));
fFlags := 0;

if ((SHFileOperation(Fos) <> 0) or
(Fos.fAnyOperationsAborted <> false)) then
ShowMessage('Operation was canceled by the user')
 
直接用 CopyFile
 
CopyFile 我文件太多啊,100多
 
for i := 0 to FileList.Count -1 do
begin
CopyFile;
end;
 
复制实现了:我想在'e:/operview backup122这个文件夹下面创建以时间为名称的文件夹,然后把所有文件复制到这个名称为时间的文件夹内,如(e:/operview backup122/2007-06-01 16-30-39/).时间为系统时间。请问怎么实现?
var ss:Tsearchrec;
sDest,ps,filepath:string;
fp:_SHFILEOPSTRUCT;
begin

CreateDirectory(PChar('e:/operview backup122/'),nil);
filepath:='D:/OPERView/';
if findfirst(filepath+'*.*',faAnyFile,ss)=0 then
begin
if not ((ss.Attr and fadirectory)=fadirectory) then
sDest := 'e:/operview backup/';
begin
while findnext(ss)=0 do
begin
if not ((ss.attr and fadirectory)=fadirectory) then
begin
ps:=Trim(filepath+ss.Name)+#0;
CopyFile(PChar(ps),PChar('e:/operview backup122/'+ss.name),false);
end;
end;
findclose(ss);
end;
end;
end;
 
问题越界了。
 
帮我解决了可以另开个贴子 给你分
 
now不行吗?
 
我没有成功
我这样的:
t:=FormatDateTime('yyyy-mm-dd hh-mm-ss',Now);
CreateDirectory(PChar('e:/operview backup122/t/'),nil);
单步跟踪t是有时间的,创建的时候,文件夹就以t命名了。
 
CreateDirectory(PChar('e:/operview backup122/'+t+'/'),nil);?
 
学了windows忘了dos了
dos命令很快啊
shellExcute,winExcute
 
他奶奶的,这么保密的想法对你说,就给我10分啊,晕。。。
 

Similar threads

后退
顶部