回 帖 发 新 帖 刷新版面

主题:[讨论]请教 批量重命名

我想用VB编一个程序,程序运行后自动读取文件夹d:\pic\下所有子文件夹下的JPG文件,并将所有找到的JPG文件以001.jpg,002.jpg........为文件名复制到d:\newpic\文件夹下。
请高手指点一下方法,会用到filecopy函数的吧

回复列表 (共4个回复)

沙发

Dim jName As String, k As Integer
jName = Dir("d:\pic\")   '找寻第一个文件
Do While Len(jName)
  If LCase(Right(jName, 3)) = "jpg" Then '如果后缀是 jpg
    k = k + 1 '计数器+1
    FileCopy "d:\pic\" & jName, "d:\newpic\" & Right("000" & k, 4) & ".jpg"
  End If
  DoEvents
  jName = Dir ' 查找下一个文件
Loop

板凳

[quote]If LCase(Right(jName, 3)) = "jpg" Then '如果后缀是 jpg[/quote]
如果后缀名是.ajpg的话,也会认为是jpg文件.

可以用right$(jName,len(jName) -instrrev(jName,"."))来取得后缀名

3 楼

1楼的代码有问题  
程序运行后要能读取文件夹d:\pic\下所有子文件夹下的JPG文件,d:\pic\有很多子文件夹

4 楼

[quote][quote]If LCase(Right(jName, 3)) = "jpg" Then '如果后缀是 jpg[/quote]
如果后缀名是.ajpg的话,也会认为是jpg文件.

可以用right$(jName,len(jName) -instrrev(jName,"."))来取得后缀名
[/quote]

改成:If LCase(Right(jName, 4)) = ".jpg" Then '如果后缀是 .jpg
完美解决问题

我来回复

您尚未登录,请登录后再回复。点此登录或注册