| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5320 人关注过本帖
标题:请高手帮忙写个小程序:移动一个文件夹中全部文件到另一个文件夹中。谢谢。
只看楼主 加入收藏
HVB6
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:331
专家分:561
注 册:2013-10-30
结帖率:98.41%
收藏
已结贴  问题点数:20 回复次数:7 
请高手帮忙写个小程序:移动一个文件夹中全部文件到另一个文件夹中。谢谢。
以下的代码的功能是希望把“d:\a”的文件夹中全部文件移动(清空,保留“d:\a”的文件夹)到另一个文件夹“d:\b”中,文件夹“d:\b”中的旧文件保留,但不中。
Private Sub Command1_Click()
   Dim s1 As String, s2 As String, s3 As String
   s1 = "d:\a"
   s2 = "d:\b"
   If Dir(s2, vbDirectory) = "" Then MkDir s2
      s3 = Dir(s1 & "\*.*")
  If Dir(s1, vbDirectory) <> "" And Dir(s2, vbDirectory) <> "" Then
    Do While s3 <> ""
       Name s1 & "\" & s3 As s2 & "\" & s3
      s3 = Dir
    Loop
  End If
    MsgBox "ok"
End Sub

[此贴子已经被作者于2016-11-1 11:36编辑过]

搜索更多相关主题的帖子: 文件夹 
2016-11-01 11:05
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:939
专家分:5244
注 册:2015-8-10
收藏
得分:5 
name应该就是可以的
要不FileCopy + Kill或者 MoveFile (需要声明,见下面代码)
我这里只有VBA,name和filecopy都可以,movefile无法测试。
Private Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long 

2016-11-01 11:35
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:939
专家分:5244
注 册:2015-8-10
收藏
得分:0 
你的代码我测试了一下,问题在于If Dir(s1, vbDirectory) <> "" And Dir(s2, vbDirectory) <> "" Then和s3 = Dir(s1 & "\*.*")的位置关系
前面你用了s3 = Dir(s1 & "\*.*"),后面又有Dir(s1, vbDirectory) <> "" And Dir(s2, vbDirectory)
那么s3 = Dir延续的是哪句,你想过没有?
这里如有没有必要,把If Dir(s1, vbDirectory) <> "" And Dir(s2, vbDirectory) <> "" Then和endif 删除就可以了
如果一定要这句的话,s3 = Dir(s1 & "\*.*")放在判断体内部也可以。
2016-11-01 11:35
HVB6
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:15
帖 子:331
专家分:561
注 册:2013-10-30
收藏
得分:0 
回复 3楼 xiangyue0510
请您再看1楼的要求,然后写全代码。谢谢。
2016-11-01 11:46
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:5 
Shell "cmd.exe /k move e:\Media\*.* e:\bbb", vbHide  '将e:\Media的所有文件移到e:\bbb中
收到的鲜花
  • HVB62016-11-01 12:08 送鲜花  6朵   附言:我很赞同
2016-11-01 11:52
xss_wl
Rank: 5Rank: 5
等 级:禁止访问
威 望:3
帖 子:100
专家分:315
注 册:2016-10-15
收藏
得分:5 
使用VB本身提供的有关文件操作的语句或函数,就能够完全实现楼主需要的功能,大家为什么要使用API等函数呢?
2016-11-01 12:25
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:939
专家分:5244
注 册:2015-8-10
收藏
得分:0 
回复 4楼 HVB6
这个论坛是交流的,我也把你代码的问题指出来了,如何修改也说清楚了
如果你连别人的帖子都不看,只想要别人给你完整的代码。懒是你的问题,不会也是你的问题。
一句话:懒得理你。
2016-11-01 17:36
寒冰玉
Rank: 1
等 级:新手上路
帖 子:1
专家分:5
注 册:2015-9-1
收藏
得分:5 
Option Explicit

Private Sub Command1_Click()
   Dim s1 As String, s2 As String, s3 As String
   s1 = "d:\a"
   s3 = Dir(s1 & "\*.*")
   If s3 = vbNullString Then
       MsgBox "源文件夹没有文件"
       Exit Sub
   End If
   s2 = "d:\b"
   If Dir(s2, vbDirectory) = vbNullString Then MkDir s2
    s3 = Dir(s1 & "\*.*")
    If Dir(s1, vbDirectory) <> vbNullString And Dir(s2, vbDirectory) <> vbNullString Then
    Do While s3 <> vbNullString
       Name s1 & "\" & s3 As s2 & "\" & s3
      s3 = Dir(s1 & "\*.*")
    Loop
  End If
  MsgBox "ok"
End Sub

只改一句代码,便可实现楼主的要求,不过为了严谨起见,还要判断当源文件夹没有文件时的处理方法

[此贴子已经被作者于2016-11-2 23:17编辑过]

收到的鲜花
  • HVB62016-11-03 08:21 送鲜花  6朵   附言:我很赞同

蓝凤凰-魔灵
2016-11-02 23:01
快速回复:请高手帮忙写个小程序:移动一个文件夹中全部文件到另一个文件夹中。谢 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026947 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved