none
Buscar archivos duplicados en una ruta de directorio y sus subdirectorios RRS feed

  • Pregunta

  • Hola amigos:

    Estoy tratando de encontrar todos aquellos archivos que sean similares en su nombre, fecha y tamaño, para eliminar aquellas copias indeseadas.

    He encontrado una procedimientos en la ayuda de VB.Net, pero la adaptación de la misma me está resultando chino básico.

    Este es el código, y los resultados pretendo cargarlos en un listbox.

    Sub QueryDuplicates2(ByVal root As String) Dim dir As New System.IO.DirectoryInfo(root) On Error Resume Next 'He puesto esta línea para evitar el error de acceso denegado, pero no debería. Dim duplicates = From aFile In dir.GetFiles("*.Jpg", System.IO.SearchOption.AllDirectories) Order By aFile.Name Group aFile By aFile.Name, aFile.CreationTime, aFile.Length Into newGroup = Group Where newGroup.Count() >= 2 Select newGroup On Error GoTo 0 'Anulo el resume para continuar Dim trimLength = root.Length With Lst_Archivos For Each fg As IEnumerable(Of System.IO.FileInfo) In duplicates Dim resultPage = From file In fg For Each line In resultPage .Items.Add(line.FullName.Substring(trimLength)) 'Aquí también me da un error, pero no domino este tipo de variables Next Next End With

    End Sub

    En realidad, me da error de directorios denegados en su acceso (que también debería controlar), y otros errores que no tengo la menor idea de porqué se generan y corrigen.

    Gracias por la ayuda de antemano.


    Juan Carlos

    lunes, 25 de noviembre de 2019 22:26

Todas las respuestas

  • Hola Juan Carlos Valero

     

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, te comparto a continuación el siguiente enlace que contiene un documento oficial sobre el tema que nos estas reportando

     

    https://docs.microsoft.com/es-es/dotnet/visual-basic/programming-guide/concepts/linq/how-to-query-for-duplicate-files-in-a-directory-tree-linq

     

    Por favor déjame saber si puedo ofrecerte una mejor respuesta

    Gracias por usar los foros de MSDN.

     

    Pablo Rubio

     ____

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    martes, 26 de noviembre de 2019 23:13
  • Hola Pablo:

    Desde ese link he sacado el procedimiento -adaptado a mis necesidades- pero ese código presente en ese link, no funciona cuando lo intentas compilarlo como allí lo dice. Hice esa observación en esa página, para ver si lo pueden corregir. Hasta ahora, no funciona.


    Juan Carlos

    miércoles, 27 de noviembre de 2019 15:02