VB6.0中怎么复制、移动文件?

比如我写了个EXE文件放在c:\123目录下,怎样在这个EXE里写程序使得其本身移到c:\456下?如果说移动很困难的话,那么能复制到C:\456下吗????怎么写语句?... 比如我写了个EXE文件放在c:\123目录下,
怎样在这个EXE里写程序使得其本身移到c:\456下?
如果说移动很困难的话,那么能复制到C: \456下吗????

怎么写语句???????
写得好的会加分,说到做到的!!
展开
 我来答
匿名用户
2006-08-06
展开全部
FileCopy replace(app.path & "\" & app.exename,"\\","\"),replace("C:\456\" & app.exename,"\\","\")

这样就可以了```
app.path & "\" & app.exename & ".exe"的结果是程序本身的完全路径,也许有人会说为什么不直接写app.path & app.exename & ".exe",因为这样写会有2个可能性:
1.假设文件在如C:\aaa的目录下,程序文件名为bbb.exe,``这样的话
app.path & app.exename & ".exe"得出的结果为c:\aaabbb.exe,这样是错误的,而app.path & "\" & app.exename & ".exe"的结果才是正确的c:\aaa\bbb.exe

2.如果文件在c:\下,程序文件名为bbb.exe,这样app.path & app.exename & ".exe"得出的结果就是C:\bbb.exe,是真确的,而app.path & "\" & app.exename & ".exe"又会得出错误的结果C:\\bbb.exe

所以为了使程序在以上2个可能性的时候都能正确运行``这样写
replace(app.path & "\" & app.exename,"\\","\")
这样的话可以把app.path & "\" & app.exename所得结果中所有的\\替换为\,就可以避免错误````
百度网友51349fc56
2006-08-05 · TA获得超过191个赞
知道答主
回答量:80
采纳率:100%
帮助的人:132万
展开全部
有两种方法可以实现,第一使用API函数代码如下:
Option Explicit

'声明移动文件的API函数
Private Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long

Private Sub Command1_Click()
Dim str1 As String
'存放原始路径
Dim str2 As String
'要复制的路径

str1 = "c:\123\"
str2 = "c:\456\123.exe"

str1 = str1 + "123.exe"

'倘若原始文件不存在
If Dir(str1) = "" Then
MsgBox "原始文件未找到!", vbOKOnly + vbExclamation
Exit Sub
End If

'移动文件
MoveFile str1, str2

MsgBox "文件移动成功!", vbOKOnly + vbInformation

End Sub
首先你要先在c盘下面建立123和456这两个文件颊
第二种方法,使用VB自身的函数实现,代码稍有变动,具体如下:
Option Explicit

Private Sub Command1_Click()
Dim str1 As String
'存放原始路径
Dim str2 As String
'要复制的路径

str1 = "c:\123\"
str2 = "c:\456\123.exe"

str1 = str1 + "123.exe"

'倘若原始文件不存在
If Dir(str1) = "" Then
MsgBox "原始文件未找到!", vbOKOnly + vbExclamation
Exit Sub
End If

FileCopy str1, str2
'复制文件
Kill str1
'删除原始文件
MsgBox "文件移动成功!", vbOKOnly + vbInformation

End Sub
OK,以上在windows xp繁体系统和VB6.0运行通过,还有什么问题请继续提出。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
魔毅卉9367
2006-08-05 · TA获得超过905个赞
知道答主
回答量:226
采纳率:0%
帮助的人:0
展开全部
你大概是想做自我复制的小程序?

一楼的可以,二楼的太繁

如果是移动,并调用自身:
Private Sub form1_load()
if app.path <>"c:\456" then
on error resume next '错误捕获
FileCopy "c:\123\xx.exe", "c:\456\xx.exe" '复制自身
shell "c:\456\xx.exe" '调用它
end
end if
end sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友de804f5
2006-08-05 · TA获得超过620个赞
知道小有建树答主
回答量:501
采纳率:0%
帮助的人:642万
展开全部
移动文件有一个很简捷的方法,就是用name file1 as file2 语句,例如
name "C;\123\a.exe" as "c:\456\a.exe"

这是一个重命名语句,除了可以重命名文件外,还可以方便快捷的移动文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zheng0823
2006-08-05 · TA获得超过975个赞
知道小有建树答主
回答量:1117
采纳率:0%
帮助的人:996万
展开全部
Private Sub Command1_Click()
FileCopy "c:\123\xx.exe", "c:\456\xx.exe"
End Sub
一定写对路径啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式