主题:[讨论]请教 批量重命名
xyouzhou
[专家分:0] 发布于 2009-04-28 22:34:00
我想用VB编一个程序,程序运行后自动读取文件夹d:\pic\下所有子文件夹下的JPG文件,并将所有找到的JPG文件以001.jpg,002.jpg........为文件名复制到d:\newpic\文件夹下。
请高手指点一下方法,会用到filecopy函数的吧
回复列表 (共4个回复)
沙发
一江秋水 [专家分:9680] 发布于 2009-04-29 08:41:00
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
板凳
天天学习 [专家分:4570] 发布于 2009-04-29 09:04:00
[quote]If LCase(Right(jName, 3)) = "jpg" Then '如果后缀是 jpg[/quote]
如果后缀名是.ajpg的话,也会认为是jpg文件.
可以用right$(jName,len(jName) -instrrev(jName,"."))来取得后缀名
3 楼
xyouzhou [专家分:0] 发布于 2009-05-02 21:15:00
1楼的代码有问题
程序运行后要能读取文件夹d:\pic\下所有子文件夹下的JPG文件,d:\pic\有很多子文件夹
4 楼
51pywg [专家分:1540] 发布于 2009-05-05 22:09:00
[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
完美解决问题
我来回复