F
fuku
Unregistered / Unconfirmed
GUEST, unregistred user!
关于文件复制的问题,小弟想将 C:/aaa目录下的文件拷贝到 D盘新建的目录bbb下<br>(程序中指定),若bbb已存在,则提示覆盖。<br>代码如下:<br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br> OpStruc: TSHFileOpStruct;<br> frombuf, tobuf: Array [0..128] of Char;<br>begin<br> FillChar( frombuf, Sizeof(frombuf), 0 );<br> FillChar( tobuf, Sizeof(tobuf), 0 );<br> StrPCopy( frombuf, 'c:/aaa' );<br> StrPCopy( tobuf, 'd:/bbb' );<br> With OpStruc DO Begin<br> Wnd:= Handle;<br> wFunc:= FO_COPY;<br> pFrom:= @frombuf;<br> pTo:=@tobuf <br> fFlags:=FOF_SIMPlEPROGRESS; (1)处<br> fAnyOperationsAborted:= False;<br> hNameMappings:= Nil;<br> lpszProgressTitle:= Nil;<br> end;<br> ShFileOperation( OpStruc );<br>end;<br>第一次执行此程序,之前D盘bbb目录不存在,结果一切正常;<br>第二次执行程序,则会在bbb目录下建立aaa目录,结果是 C:/aaa目录下<br>的文件拷到了 D:/bbb/aaa下;若再执行,则提示aaa目录已存在,选择<br>覆盖的结果是 C:/aaa目录下的文件覆盖了 D:/bbb/aaa下的文件。<br>(1)处的fFlags赋任何值结果都一样。若去掉(1)处语句,即不给fFlags<br>赋值的话,则情况变为:第一次执行,同上正常;第二次执行,在D盘根<br>目录下建立了aaa目录,C:/aaa下的文件拷到了D:/aaa下;再次执行,则<br>是 C:/aaa下的文件覆盖了 D:/aaa下的文件。无论如何都实现不了小弟<br>的初衷,特向诸位大哥长请教,烦请答复,谢谢!