Bonjour,

J'ai récemment migré mes données d'un ancien Nas (DS115j) vers un nouveau (DS224+). Je voudrais m'assurer que tous les fichiers ont bien été transmis, sans erreur. Pour cela je monte les deux volumes Nas sur mon iMac via SMB, puis je vérifie à l'aide d'un script Python qui parcours l'arborescence récursivement que, pour chaque fichier, la date, la taille et enfin le MD5. Ce script fonctionne bien dans la plupart des cas, sur plusieurs To de données.

Anecdote : c'est avec ce script que j'ai découvert que iCloud se permettait de "perdre" des fichiers, mais c'est une autre histoire. Fin de l'anecdote.


Le problème que je rencontre c'est que le parcours donne une erreur non déterministe entre deux exécutions. Voici le code simpliste qui reproduit l'indéterminisme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
import sys
from pathlib import Path
 
def scan(path):
    for file in path.iterdir():
        if file.exists()==False:
            print('Not exist: '+str(file))
        else:
            if file.is_dir():
                scan(file)
 
top_path = Path('/Volumes/thomas frigo')
print(sys.getdefaultencoding())
scan(top_path)
Premier problème : Le file.exists() devrait toujours être ok puisque le fichier vient d'être renvoyé par la commande iterdir().
Second problème : Le file.exists() donne un résultat différent entre deux exécutions:

Exécution #1:
utf-8
Not exist: /Volumes/thomas frigo/synology/STAV Rupture révolutionnaire P1 (1).pdf
Not exist: /Volumes/thomas frigo/synology/Le planisphère.m4a

Exécution #2:
utf-8
Not exist: /Volumes/thomas frigo/synology/STAV Rupture révolutionnaire.doc
Not exist: /Volumes/thomas frigo/synology/STAV Rupture révolutionnaire.odt
Not exist: /Volumes/thomas frigo/synology/STAV Rupture révolutionnaire P1.doc
Not exist: /Volumes/thomas frigo/synology/STAV Rupture révolutionnaire P1.pdf
Not exist: /Volumes/thomas frigo/synology/STAV Rupture révolutionnaire (2).doc
Not exist: /Volumes/thomas frigo/synology/Deuxième république.m4a

==> 2 résultats différents. Le point commun c'est qu'il s'agit systématiquement de fichiers avec des accents, cédilles, etc, Mais à l'opposé, seule une fraction des fichiers avec accents posent un problème d'indéterminisme, je ne pense donc pas qu'il s'agisse d'un problème d'encoding, même si il semble y avoir une corrélation...

Est-ce que quelqu'un a déjà rencontré ce soucis ?

Merci d'avance pour vos suggestion.

Grégoire.