[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 !
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 !
A voir également:
- [dossiers] Comment comparer un ensemble
- Mettre un mot de passe sur un dossier - Guide
- Impossible de supprimer un dossier - Guide
- Comment dézipper un dossier - Guide
- Comparer prix amazon - Guide
- Meilleur prix Amazon : payer moins cher avec Amazin'Europe - Accueil - Commerce
7 réponses
Bonsoir,
un petit message court pour résoudre ton problème :
ne pas oublier de référencer Microsoft scripting runtime (menu outils/références... dans VBA)
A+
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
45515
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
3 556
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
à+
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 !
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
45515
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
3 556
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
à+
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 !
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 !
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 !