Board logo

标题: [基础] 把E:\A\2个文件取出并改名到E:\B\里面,改名=原来的名+当前日期。 [打印本页]

作者: love_4444    时间: 2008-7-24 22:26     标题: 把E:\A\2个文件取出并改名到E:\B\里面,改名=原来的名+当前日期。

前提是E盘A文件夹里不知道2个文件的名,请高手不吝赐教 。都好长时间没能解决了,上火啊!
作者: Nothing    时间: 2008-7-25 00:33

Dim MyFile, MyPath, MyName, NewPath


MyPath = "E:\A\"   ' 指定路径。
NewPath = "E:\B\"
MyName = Dir(MyPath, vbDirectory)   ' 找寻第一项。
Do While MyName <> ""   ' 开始循环。
   ' 跳过当前的目录及上层目录。
   If MyName <> "." And MyName <> ".." Then
      ' 使用位比较来确定 MyName 代表一目录。
      If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
         Debug.Print MyName   ' 如果它是一个目录,将其名称显示出来。
      Else
        Name MyPath & MyName As NewPath & MyName & Format("yyyymmdd")
      End If
   End If
   MyName = Dir   ' 查找下一个目录。
Loop
作者: love_4444    时间: 2008-7-25 18:30     标题: 回复 2# 的帖子

程序挺好但是改名都成这种格式了,ABC.txtyyyymmdd,CD.txtyyyymmdd

比如这么说吧,把.TXT文件类型的都找出来改名应该都为ABC20080725.txt 和CD20080725.txt
现在程序没有取出当前时间来, 谢谢如果知道还请不吝赐教非常感谢。其实就是改名这部分怎么都改不好。估计太晚了,没有测试就发上来了,但是非常感谢!
作者: love_4444    时间: 2008-7-25 18:36

非常感谢但是程序测试结果为
ABC.txtyyyymmdd想要成为ABC20080725.txt格式的。
主要是新手估计高手看到自己就会改了, 还请知道的调整一下。谢谢
作者: wshzw    时间: 2008-7-31 13:54

可将代码改成如下试试:
Sub test()
   Dim MyFile, MyPath, MyName, NewPath
   Dim sName0$, sName1$
   
   MyPath = "E:\A\"   ' 指定路径。
   NewPath = "E:\B\"
   MyName = Dir(MyPath)   ' 找寻第一项。
   Do While MyName <> ""   ' 开始循环。
      sName0 = Split(MyName, ".")(0)
      sName1 = "." & Split(MyName, ".")(1)
      Name MyPath & MyName As NewPath & sName0 & Format(Now, "yyyymmdd") & sName1
      MyName = Dir   ' 查找下一个目录。
   Loop
End Sub
作者: Nothing    时间: 2008-7-31 23:13

楼上正解




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0