[dossiers] Comment comparer un ensemble
Résolu
HOOK
Messages postés
353
Statut
Membre
-
fred -
fred -
Bonjour,
Via mon réseau local, j'ai voulu transférer le contenu de "Mes documents" (dossiers, sous-dossiers, fichiers, etc...) d'un PC A vers un PC B, soit... quelques gigas de données. Le lendemain, j'ai vu que le transfert s'était planté pour un problème de nom de fichier trop long (je pense : chemin d'accès + nom fichier > 256 caractères). De rage (je peux être coléreux de bon matin...), j'ai fermé la fenètre indiquant l'anomalie... et donc je me retrouve dans une situation où il devient impossible de trouver tous les sous-répertoires et fichiers manquants sur PC B.
Connaîtriez-vous...
1. un utilitaire capable de scanner un ensemble de dossiers, voire une partition complète, et qui indiquerait tous les chemin d'accès + noms trop longs pour un manipulation de fichiers
et/ou
2. un utilitaire capable de me dire quels sont les dossiers, sous-dossiers,... sous-sous dossiers..., fichiers présents sur le PC A et absents du PC B. Jusqu'à présent, je ne trouve que des utilitaires qui font une comparaison du contenu de tous les fichiers de dossiers différents.
D'avance, merci !
--
HooK ~ "Un autre monde est possible, si..."
l'on passe à l'Attac !... ;o)
Via mon réseau local, j'ai voulu transférer le contenu de "Mes documents" (dossiers, sous-dossiers, fichiers, etc...) d'un PC A vers un PC B, soit... quelques gigas de données. Le lendemain, j'ai vu que le transfert s'était planté pour un problème de nom de fichier trop long (je pense : chemin d'accès + nom fichier > 256 caractères). De rage (je peux être coléreux de bon matin...), j'ai fermé la fenètre indiquant l'anomalie... et donc je me retrouve dans une situation où il devient impossible de trouver tous les sous-répertoires et fichiers manquants sur PC B.
Connaîtriez-vous...
1. un utilitaire capable de scanner un ensemble de dossiers, voire une partition complète, et qui indiquerait tous les chemin d'accès + noms trop longs pour un manipulation de fichiers
et/ou
2. un utilitaire capable de me dire quels sont les dossiers, sous-dossiers,... sous-sous dossiers..., fichiers présents sur le PC A et absents du PC B. Jusqu'à présent, je ne trouve que des utilitaires qui font une comparaison du contenu de tous les fichiers de dossiers différents.
D'avance, merci !
--
HooK ~ "Un autre monde est possible, si..."
l'on passe à l'Attac !... ;o)
7 réponses
-
Bonsoir,
un petit message court pour résoudre ton problème :Option Explicit Public dossier Public Type BROWSEINFO hOwner As Long pidlRoot As Long pszDisplayName As String lpszTitle As String ulFlags As Long lpfn As Long lParam As Long iImage As Long End Type '32-bit API declarations Declare Function SHGetPathFromIDList Lib "shell32.dll" _ Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long Declare Function SHBrowseForFolder Lib "shell32.dll" _ Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long Function GetDirectory(Optional Msg) As String Dim bInfo As BROWSEINFO Dim path As String Dim r As Long, x As Long, pos As Integer bInfo.pidlRoot = 0& If IsMissing(Msg) Then bInfo.lpszTitle = "" Else bInfo.lpszTitle = Msg End If bInfo.ulFlags = &H1 x = SHBrowseForFolder(bInfo) path = Space$(512) r = SHGetPathFromIDList(ByVal x, ByVal path) If r Then pos = InStr(path, Chr$(0)) GetDirectory = Left(path, pos - 1) Else GetDirectory = "" End If End Function Sub Arborescence_simple_Dossier() 'Objectif : créer une liste du contenu d'un répertoire ' Dim fs, i, j, nomfich, FileNumber, specfichier, nbfichiers Dim fso As New FileSystemObject dossier = GetDirectory("choisissez le dossier à traiter") If dossier <> "" Then Set fs = Application.FileSearch With fs .LookIn = dossier .SearchSubFolders = True '.Filename = "*.js" .FileType = msoFileTypeAllFiles If .Execute() > 0 Then nbfichiers = .FoundFiles.Count MsgBox "Ce dossier contient " & nbfichiers & " fichier(s) répondant aux critères." j = 2 For i = 1 To nbfichiers specfichier = .FoundFiles(i) Cells(j, 1) = specfichier j = j + 1 Next i Else MsgBox "Aucun fichier n'a été trouvé." End If End With Columns("A:A").Select Selection.Insert Shift:=xlToRight Range("A2").Select ActiveCell.FormulaR1C1 = "=LEN(RC[1])" Range("A2").Select Selection.AutoFill Destination:=Range("A2:A" & nbfichiers + 1) Range("A1").Select ActiveCell.FormulaR1C1 = "longueur" Range("B1").Select ActiveCell.FormulaR1C1 = "chemin_fichier" Range("A2").Select Columns("B:B").EntireColumn.AutoFit Range("A1").Select Selection.AutoFilter Selection.AutoFilter Field:=1, Criteria1:=">255", Operator:=xlAnd End If End Subtu copies ce code dans un module macro d'une feuille excel et tu lances Arborescence_simple_Dossier.
ne pas oublier de référencer Microsoft scripting runtime (menu outils/références... dans VBA)
A+ -
vieu bison boiteu Messages postés 44334 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 3 591
salut hook
recupération fichiers
http://www.commentcamarche.net/forum/affich-1475512-r%E9cup%E9ration-de-donn%E9es-sur-dd-format%E9
http://www.commentcamarche.net/faq/sujet-309-R%E9cup%E9ration-de-donn%E9es-perdues
http://www.trucs-et-astuces-windows.com/telechargement/logiciel_et_utilitaire.html
http://www.clubic.com/telecharger-fiche14192-restoration.html
http://www.zdnet.fr/telecharger/windows/fiche/0,39021313,39046507s,00.htm
à+ -
Merci mon vieux Bison !.... mais... j'ai du mal m'expliquer : j'ai toujours toutes mes données sur le pc A (j'ai lancer un copier/coller). Je n'ai donc pas de données à récupérer (j'ai déjà les outils pour ça !).
Vu la quantité de répertoires, sous-répertoires, etc et fichiers, je ne veux/peux pas m'en sortir avec un contrôle visuel.
Donc, soit je peux connaître le ou les fichiers de pc A qui vont bloquer le "copier/coller" vers le pc B du fait de la longueur de la chaîne de caractères constituant le chemin en appliquant la solution 1, soit je peux connaître le delta exact entre pc A et pc B (solution 2) et je me débrouille de corriger les chemins trop longs et de relancer le "copier/coller".
En tous cas, merci d'avoir rassemblé toutes ces infos !
-
vieu bison boiteu Messages postés 44334 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 3 591
copie disque à disque : ligne de commande
http://www.informatruc.com/disque_a_disque.php
et un petit logiciel
XCOPY
http://www.interpc.fr/mapage/admortreuil/Informatiques/dos/Dosxcopy.htm
http://1100f.free.fr/Batchs/la_commande_xcopy.htm
fichier : http://www.anshare.com/fiche.asp?I=10431
à+ -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Voilà qui commence à mieux me convenir ! :-)
Je teste tout ça et je te tiens au courant. Je vais aussi essayer "SuperCopier" dont on m'a dit beaucoup de bien.
Merci et à bientôt pour le résultat de mon transfert ! -
Pour Vieu bison boiteu (boiteu... par absence de "x" ?) : merci pour cette redécouverte du XCOPY. Le petit soft développé en VB est excellent... en revanche, il ne traite pas les noms supérieurs au 256 c (je n'ai pas essayé la fonction de renommage en noms courts DOS parce que je ne m'y retrouverai pas plus ensuite). Donc, si le XCOPY ne plante pas avec le bon commutateur, le résultat final n'est pas meiilleur dans mon cas.
Pour JvDo : alors là, chapeau bas ! Ta macro marche du feu de Dieu ! C'est génial ! J'avais bien envisagé une opération manuelle en 2 temps (récup dans un fichier texte de toute l'arborescence d'un lecteur, import sous Excel et macro pour compter et mettre en évidence les chemins trop longs). Mais là, c'est de l'instantané et du "tout en un" !!! Encore merci !
Problème résolu donc ! A tchao ! -