Public Sub FindDuplicateFiles(ByVal FolderPath As String)
Dim fso As Object
Dim objFolder As Object
Dim objFile As Object
Dim fileDictionary As Object
Dim key As Variant
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFolder = fso.GetFolder(FolderPath)
Set fileDictionary = CreateObject("Scripting.Dictionary")
' Recorrer todos los archivos en la carpeta y subcarpetas
For Each objFile In objFolder.Files
' Si el archivo ya se encuentra en el diccionario, agregarlo a la colección de archivos duplicados
If fileDictionary.Exists(objFile.Name) Then
fileDictionary(objFile.Name).Add objFile.Path
Else
' De lo contrario, agregar el archivo al diccionario
Set fileDictionary(objFile.Name) = New Collection
fileDictionary(objFile.Name).Add objFile.Path
End If
Next objFile
' Imprimir la lista de archivos duplicados y sus ubicaciones
For Each key In fileDictionary
If fileDictionary(key).Count > 1 Then
Debug.Print "Archivo duplicado: " & key
For Each objFile In fileDictionary(key)
Debug.Print "Ubicación: " & objFile
Next objFile
End If
Next key
End Sub