在delphi5中如何复制文件夹? 但是shfileoperation函数只能在NT下使用啊。有没有更好的方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 if FindFirst(FromFile, faAnyfile,SearchRec) = 0 then begin GetMem(FromDir, Length(FromFile)+2); try GetMem(ToDir, Length(ToFile)+2); try FillChar(FromDir^, Length(FromFile)+2, 0); FillChar(ToDir^, Length(ToFile)+2, 0); StrCopy(FromDir, PChar(FromFile)); StrCopy(ToDir, PChar(ToFile)); with SHFileOpStruct do begin Wnd := Handle; // Assign the window handle wFunc := FO_COPY; // Specify a file copy pFrom := FromDir; pTo := ToDir; fFlags := 0; fAnyOperationsAborted := true; hNameMappings := nil; lpszProgressTitle := nil; if SHFileOperation(SHFileOpStruct) <> 0 then RaiseLastWin32Error; end; finally FreeMem(ToDir, Length(ToFile)+2); end; finally FreeMem(FromDir, Length(FromFile)+2); end; end shfileoperation可以98下面用的,我已经给了例子了 TO cobi(小新国际)兄:shfileoperation可以在98下面用吗?但我查了win32 api手册,似乎说只能在NT下用。是delphi自带的手册。另外,上一例中的FromFile,ToFile的初始值是什么?一定要指定文件名吗?能不能给出所有变量的声明及初始值。谢谢了,解决这两个问题之后再加分。 以上代码是我的一个程序里用到的,该程序是在98下运行,没有问题。FromFile和ToFile都是String类型,记录被复制文件的源位置和目标位置。其他的变量的声明如下:SearchRec : TSearchRec;SHFileOpStruct: TSHFileOpStruct;FromDir: PChar;ToDir: PChar我这个程序里是拷贝一个文件的,如果要拷贝整个目录,则不要写前面的findfirst判断语句,另外FromFile,ToFile直接写目录名即可。 非常感谢cobi(小新国际)兄,可以解贴了,谢谢。 cobi(小新国际)兄:我照你所说的做了,但系统提示SHFileOpStruct为非法变量,请问是否需要uses其它单元?另外,我的源目录及目标目录是用string变量表示的,如何实现与PChar变量的互换? 在interface的uses中加上shellapi和filectrl 求ExtStringGrid等控件 !!!获得COMBOBOX下拉表中的ITEM的内容,高手请进,UP有分!!! 清空数据库后,怎样使自加字段归零? SELECT * FROM :Tname; 如何将Tname参数传递给SQL [窗体类]大家来帮忙~ 有关Access的日期查询问题 delphi+informix程序打包问题 socket控件收发文件的事例 怎样制作AVI按扭。 关于BLOB不能正确取出 如果使一个与数据库中的日期字段相连的DBtext或DBedit 里只显示日期,不显示时间??? 请问如何得到刚刚添加的记录?后台数据库是paradox.
begin
GetMem(FromDir, Length(FromFile)+2);
try
GetMem(ToDir, Length(ToFile)+2);
try
FillChar(FromDir^, Length(FromFile)+2, 0);
FillChar(ToDir^, Length(ToFile)+2, 0); StrCopy(FromDir, PChar(FromFile));
StrCopy(ToDir, PChar(ToFile)); with SHFileOpStruct do
begin
Wnd := Handle; // Assign the window handle
wFunc := FO_COPY; // Specify a file copy
pFrom := FromDir;
pTo := ToDir;
fFlags := 0;
fAnyOperationsAborted := true;
hNameMappings := nil;
lpszProgressTitle := nil;
if SHFileOperation(SHFileOpStruct) <> 0 then
RaiseLastWin32Error;
end;
finally
FreeMem(ToDir, Length(ToFile)+2);
end;
finally
FreeMem(FromDir, Length(FromFile)+2);
end;
end
shfileoperation可以在98下面用吗?但我查了win32 api手册,似乎说只能在NT下用。是delphi自带的手册。
另外,上一例中的FromFile,ToFile的初始值是什么?一定要指定文件名吗?
能不能给出所有变量的声明及初始值。
谢谢了,解决这两个问题之后再加分。
FromFile和ToFile都是String类型,记录被复制文件的源位置和目标位置。
其他的变量的声明如下:
SearchRec : TSearchRec;
SHFileOpStruct: TSHFileOpStruct;
FromDir: PChar;
ToDir: PChar我这个程序里是拷贝一个文件的,如果要拷贝整个目录,则不要写前面的findfirst判断语句,另外FromFile,ToFile直接写目录名即可。
我照你所说的做了,但系统提示SHFileOpStruct为非法变量,请问是否需要uses其它单元?
另外,我的源目录及目标目录是用string变量表示的,如何实现与PChar变量的互换?