(在线等!立刻给分!请指点一二,谢谢)为什么我的文件不能复制? ( 积分: 100 )

  • 主题发起人 主题发起人 liufengliang
  • 开始时间 开始时间
L

liufengliang

Unregistered / Unconfirmed
GUEST, unregistred user!
我先创建一个文件夹,再向其复制文件!出了问题!
CopyDir(FromDir, ToDir: string): boolean; //文件复制

begin //创建文件夹
CreateDirectory(PChar(ExtractFilePath(ParamStr(0))+Edit1.Text ),nil);
FromDir1 := getcurrentdir() ;
FromDir1 := FromDir1 + '/Test.exe ' ;

ToDir1 := PChar( ExtractFilePath(ParamStr(0))+123 ) ; //1//
ToDir1 := 'D:/1030/MyFunction_0529_1/Carrier_RtuOperation/bin/123 ' //2//

SHChangeNotify(SHCNE_ASSOCCHANGED,SHCNF_IDLIST+SHCNF_FLUSH,nil,nil); //刷新

if CopyDir(FromDir1, ToDir1 ) then
end;
//----------为什么用代码 1 就不能复制,用 2 就可以复制-----
1用的是一个函数取的字符串,
2是直接写的一字符串。
为什么1就不能复制,2就可以复制
 
function TFolderFile_Frm.CopyDir(FromDir, ToDir: string): boolean;
var
T : TSHFileOpStruct; //文件复制
begin
T.Wnd:=Application.Handle;
T.wFunc:=FO_COPY ;
T.pFrom:=Pchar(FromDir);
T.pTo:=pchar(ToDir);
T.hNameMappings:=nil;
T.lpszProgressTitle:=nil;
T.fFlags:=FOF_NOCONFIRMATION;
Try
SHFileOperation(T);
except
result := false ;
end ;
result := true;
end;
我的文件复制函数!
 
不要转化为 PChar 试试
ToDir1 := PChar( ExtractFilePath(ParamStr(0))+123 ) ; //1//
改成
ToDir1 := IncludeTrailingPathDelimiter(ExtractFilePath(ParamStr(0)))+'123' ; //1//
 
zhuangqr大哥,
你的方法,我用了,不可以哦
function TFolderFile_Frm.CopyDir(FromDir, ToDir: string): boolean;
var
T : TSHFileOpStruct; //文件复制
begin
T.Wnd:=Application.Handle;
T.wFunc:=FO_COPY ;
T.pFrom:=Pchar(FromDir);
T.pTo:=pchar(ToDir);
T.hNameMappings:=nil;
T.lpszProgressTitle:=nil;
T.fFlags:=FOF_NOCONFIRMATION;
Try
SHFileOperation(T);
except
result := false ;
end ;
result := true;
end;
我的文件复制函数
 
在CSDN中有个朋友给了我一个函数,可以用,但我不知道是什么?
请给我一个答案好吗,给了答案就给分!
Function Copy_Dir(SourceDir,DestDir:String;nLx:Integer):Boolean;
Var
Opstruc: TshFileOpStruct;
frombuf,tobuf: Array[0..128] of Char;
begin
FillChar(frombuf,Sizeof(frombuf),0);
FillChar(tobuf,Sizeof(tobuf),0);
StrPcopy(frombuf,SourceDir);
Case nLx of
1:
StrPcopy(tobuf,DestDir);
end;
With Opstruc Do
Begin
Wnd:=0;
Case nLx of
1: wFunc:=FO_COPY;
2: wFunc:=FO_DELETE;
Else wFunc:=FO_COPY;
end;
pFrom:=@frombuf;
pTo:=@tobuf;
fFlags:=FOF_NOCONFIRMATION;
fAnyOperationsAborted:=False;
hNameMappings:=Nil;
lpszProgressTitle:=Nil;
end;
try
ShFileOperation(OpStruc);
Result:=True;
except
Result:=False;
end;
 
ToDir1 := PChar( ExtractFilePath(ParamStr(0))+[red]'[/red]123[red]'[/red] ) ; //1//
 
文件复制函数WidowAPI有啊 何必要自己写呢?
你可以去查看帮助的.
BOOL CopyFile(

LPCTSTR lpExistingFileName, // pointer to name of an existing file
LPCTSTR lpNewFileName, // pointer to filename to copy to
BOOL bFailIfExists // flag for operation if file exists
);
 
后退
顶部