经过研究,自己来解答吧,嘿嘿!
代码解答:QQ下载同名文件夹后的处理。
一、代码实现目标:假定通过QQ下载文件夹到“C:\test”,文件夹名称为“MYtasty”,第二次又接收到同一个文件夹,通常系统会新产生一个文件名为“MYtasty(1)”文件夹,设想:1.如果找到“MYtasty”,则删除“MYtasty”文件夹,将“MYtasty(1)”文件夹重命名为“MYtasty”。2.如果没有找到,侧删除“MYtasty(1)”文件夹。
二、思路:1.先在C:\test”目录下遍历子文件,获得文件夹名最后为")"的名称,用left获取文件名"("左边的部分,2.再遍历子文件,以截取的文件名查找,如果找到刚删除。3.重新命名“MYtasty(1)”,也就是去掉“(1)”。
三、代码:
Private Sub 同文件夹名处理()
On Error Resume Next
Dim MyFSO As New FileSystemObject
Dim fdo,fd As Folder
Dim MyName As String
Dim n As Integer
For Each fdo In MyFSO.GetFolder("C:\test").SubFolders
If Right(fdo.Name, 1) = ")" Then
n = 0
MyName = Left(fdo.Name, InstrRev(fdo.Name,"(")-1)) '获取"("前面名称
For Each fd In MyFSO.GetFolder("C:\test").SubFolders
If fd.Name = MyName Then
n = n + 1
MyFSO.DeleteFolder "C:\test" & "\" & fd.Name
Name "C:\test" & "\" & fdo.Name As "C:\test" & "\" & MyName
Exit For
End If
Next
If n > 0 Then
MessageBoxTimeout Me.hwnd, "之前相同文件夹还未导入,已删除旧文件,保留最新文件夹。", "tips", vbInformation, 0, 2000
Call 遍历
Exit Sub
ElseIf n = 0 Then
MyFSO.DeleteFolder "C:\test" & "\" & fdo.Name
MessageBoxTimeout Me.hwnd, "已删除最近重复文件夹,资料已存在。", "tips", vbInformation, 0, 2000
Call 遍历
Exit Sub
End If
End If
Next
End Sub