unit FileCopyFrm;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IniFiles, ShellAPI;type
TFileCopyForm = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
FileCopyForm: TFileCopyForm;implementation
var
PathIniFile: TIniFile;{$R *.dfm}procedure TFileCopyForm.FormCreate(Sender: TObject);
var
PathIniFileName: String;
CompletePath, TempPath: String;
FData : TShFileOpStruct;
begin
try
PathIniFileName:= ExtractFilePath(paramstr(0)) + 'ExportPathINI.ini';
if not FileExists(PathIniFileName) then
raise Exception.Create('ExportPathINI 不存在');
PathIniFile:= TIniFile.Create(PathIniFileName);
CompletePath:= PathIniFile.ReadString('Path', 'CompletePath', '');
TempPath:= PathIniFile.ReadString('Path', 'TempPath', '');
if not DirectoryExists(CompletePath) then
ForceDirectories(CompletePath);
FData.Wnd:= Handle;
FData.wFunc:= FO_COPY;
FData.pFrom:= PChar(ExtractFilePath(paramstr(0))+TempPath+#0#0);
FData.pTo:= PChar(CompletePath+#0#0);
FData.lpszProgressTitle:= 'Wait,文件正在复制';
FData.fFlags:= FOF_ALLOWUNDO OR FOF_NOCONFIRMMKDIR OR FOF_MULTIDESTFILES OR FOF_FILESONLY;
if ShFileOperation(FData) = 0 then
showmessage('文件复制成功')
else
showmessage('文件复制失败');
finally
PathIniFile.Free;
end;
end;end.INI文件在另外一个程序里已经创建了,这里只是引用其值,
我运行的时候老是报“无法复制文件:无法读源文件或磁盘”的错误,这是怎么回事? 请各位大虾指点!
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IniFiles, ShellAPI;type
TFileCopyForm = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
FileCopyForm: TFileCopyForm;implementation
var
PathIniFile: TIniFile;{$R *.dfm}procedure TFileCopyForm.FormCreate(Sender: TObject);
var
PathIniFileName: String;
CompletePath, TempPath: String;
FData : TShFileOpStruct;
begin
try
PathIniFileName:= ExtractFilePath(paramstr(0)) + 'ExportPathINI.ini';
if not FileExists(PathIniFileName) then
raise Exception.Create('ExportPathINI 不存在');
PathIniFile:= TIniFile.Create(PathIniFileName);
CompletePath:= PathIniFile.ReadString('Path', 'CompletePath', '');
TempPath:= PathIniFile.ReadString('Path', 'TempPath', '');
if not DirectoryExists(CompletePath) then
ForceDirectories(CompletePath);
FData.Wnd:= Handle;
FData.wFunc:= FO_COPY;
FData.pFrom:= PChar(ExtractFilePath(paramstr(0))+TempPath+#0#0);
FData.pTo:= PChar(CompletePath+#0#0);
FData.lpszProgressTitle:= 'Wait,文件正在复制';
FData.fFlags:= FOF_ALLOWUNDO OR FOF_NOCONFIRMMKDIR OR FOF_MULTIDESTFILES OR FOF_FILESONLY;
if ShFileOperation(FData) = 0 then
showmessage('文件复制成功')
else
showmessage('文件复制失败');
finally
PathIniFile.Free;
end;
end;end.INI文件在另外一个程序里已经创建了,这里只是引用其值,
我运行的时候老是报“无法复制文件:无法读源文件或磁盘”的错误,这是怎么回事? 请各位大虾指点!
关注!
用ShowMessage(FData.pFrom)查看该路径是否存在。
另外在后面加那么多#0干什么?没有什么用的。————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————