让我发疯的问题(50分)

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

lgsonline

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button1Click(Sender: TObject);<br>var<br>&nbsp; &nbsp; &nbsp;f:Tshfileopstruct;<br>&nbsp; &nbsp;begin<br>&nbsp; &nbsp; &nbsp; &nbsp;f.wnd:=Handle;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; F.wFunc:=FO_COPY;<br>&nbsp; &nbsp; &nbsp; F.pFrom:=pchar(edit1.text);<br>&nbsp; &nbsp; &nbsp; F.pTo:=pchar(edit2.text);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; F.fFlags:=FOF_ALLOWUNDO OR FOF_RENAMEONCOLLISION &nbsp;;<br>&nbsp; &nbsp;if ShFileOperation(F)&lt;&gt;0 then<br>&nbsp; &nbsp;ShowMessage('文件拷贝失败');<br>end;<br>帮高手帮我看看好吗?
 
这是个产生win95拷贝效果的程序,但是有个的文件不能拷贝<br>提示我无法复制文件,文件系统错误(1026)<br>
 
这不是程序的错。有些系统正在用的文件就是不能拷贝的[^]<br>对了,注意把文件属性改为normal试试[^]
 
谢谢wukw,我试过了,文件没有被使用,而且错误提示是找不到要复制文件的提示<br>请你和我联系好吗,qq7131331
 
使用API FILECOPY
 
谢谢system-owen,可以详细说明一下吗?
 
如果是D6,本身就是复制文件的函数,好像是filecopy还是copyfile
 
谢谢pnljh,应该是copyfile,但是这个函数不能产生win98copy的效果,没有进度,剩余时间<br>等提示,我调用这个函数的目的就是这个。大家帮我看看好吗
 
api函数的copyfile用法示例:<br>copyfile('C:/Downloads/vsnet.zip','c:/winnt/Temp/Temp.zip',true);<br>也是没有进度条。<br>
 
pnljh:我的目的不是copy,copyfile我知道怎么用,我要的是win98 的copy效果<br>有上海的高手吗?到现场帮我看看,我请吃饭
 
应该是文件路径不正确,跟踪调试看一下
 
有上海的高手吗?到现场帮我看看,我请吃饭<br><br>有!
 
bxch_1000谢谢,跟踪不出来啊
 
死水你在那里怎么和你联系?我请你吃饭
 
var<br>&nbsp;f:Tshfileopstruct;<br>begin<br>&nbsp;f.Wnd:=Handle;<br>&nbsp;f.wFunc:=fo_copy;<br>&nbsp;f.pFrom:=pchar(edit1.Text);<br>&nbsp;f.pTo:=Pchar(edit2.Text);<br>&nbsp;f.fFlags:=FOF_NOCONFIRMATION or FOF_SIMPLEPROGRESS;//跟你的不一样<br>&nbsp;f.lpszProgressTitle:=pchar('从'+'“'+Edit1.Text+'”到 “'+Edit2.Text+'”');<br>if ShFileOperation(F)&lt;&gt;0 then<br>&nbsp; &nbsp;ShowMessage('文件拷贝失败');<br>end;<br>其中:<br>&nbsp; Edit1.Text:='f:/ljh/exam/driver.cab';<br>&nbsp; Edit2.Text:='f:/ljh/exam/1'<br>也就是将driver.cab复制到f:/ljh/exam/1目录下,成功了,并显示了进度。<br>注:要复制的文件要大一点才能看到显示进度<br>
 
非常感谢pnljh的‘屡次三番的解答’:)<br>你的程序我试过了还不行<br>我的程序问题是有的文件可以copy,有的不可以copy<br>提示我无法复制文件,文件系统错误(1026)<br>你输入一个不存在的文件名就可以看到我的错误提示了<br>我把这段程序放在别的目录下,本来可以copy的文件又不可以copy了,真是很怪<br>希望你留下联系方式<br>
 
如果源文件不存在,会出现如下错误(我用的是win2K):<br>无法复制文件:无法读源文件或磁盘<br>不知道你是不是用了相对路径,要确保文件没被使用,<br>我的Email:gzljh@21cn.com。<br>我有个程序给你,是编译好的,程序和原来的一样,只是多了选择文件和路径,<br>以确保文件和路径存在,<br>文件和路径是不能手工改的,只能选。我将程序复制到其他目录运行一样OK。<br>复制文件也OK(有进度条)。<br>给个email我发过去。<br>
 
用TFileStream方法也可以实现呀。
 
SHFileOpStruct的pFrom和pTo要求的是以两个'/0'结尾的缓冲区,直接将String变成PChar<br>并不符合此要求,因此会出错。<br>var<br>&nbsp; p : PChar;<br>begin<br>&nbsp; GetMem(p,Length(sFileName)+1);<br>&nbsp; FillChar(p^,Length(sFileName)+1,0);<br>&nbsp; StrPCopy(p,sFileName);<br>&nbsp; ...<br>
 
感谢月满西楼:我水平太差,请发个完整的程序好吗,谢谢<br>pnljh,我的email lgsonline@sina.com,我发现拷贝dos文件都出错
 
后退
顶部