Assainisseur de noms de fichiers

Collez une liste de noms de fichiers et obtenez une version nettoyée qui survivra à tout système d’exploitation, toute archive ZIP, tout chemin CDN. L’assainisseur convertit les lettres accentuées en ASCII pur, supprime les caractères qui posent problème sur Windows (\ / : * ? " < > |), enlève les caractères de contrôle, réduit les espaces et remplace les séquences interdites par votre remplacement choisi (par défaut : tiret). Utile avant de télécharger en masse sur S3, d’expédier un ZIP de cours, ou de corriger une importation de photos d’un ancien NAS.

Comment assainir les noms de fichiers

  1. 1

    Collez les noms de fichiers

    Un par ligne, avec ou sans extensions. Les extensions sont conservées telles quelles.

  2. 2

    Choisissez le remplacement

    Choisissez le caractère utilisé pour remplacer les séquences non sécurisées. Le tiret (`-`) est le choix par défaut le plus sûr ; le soulignement (`_`) est le choix rétro.

  3. 3

    Exécutez l'assainisseur

    Chaque nom est coupé, converti en ASCII, dépouillé des caractères interdits et les espaces sont réduits. S'il ne reste rien, il devient `file`.

  4. 4

    Vérifiez avant de renommer

    La sortie liste uniquement les noms nettoyés, alors parcourez-la pour repérer les collisions (deux entrées devenant la même sortie) avant de renommer sur place.

Qu'est-ce qui est non sécurisé, et pourquoi

Différents systèmes de fichiers et outils ont différentes listes noires. L’intersection sûre multiplateforme est plus stricte que la plupart des gens ne le réalisent.

Caractères et motifs qui rendent les noms de fichiers non sécurisés

Élément Pourquoi c’est non sécurisé
\ / : * ? " < > | Interdit sur Windows (NTFS, FAT).
Caractères de contrôle ASCII 0x00-0x1F Illégaux sur la plupart des systèmes de fichiers ; cassent les scripts shell.
Espaces en début/fin Silencieusement supprimés par Windows ; bugs invisibles.
Points finaux Silencieusement supprimés par Windows.
Noms réservés CON, PRN, AUX, NUL, COM1..9, LPT1..9, tous bloqués sur Windows.
Marques de combinaison Unicode Font que café ressemble à café tout en constituant un nom de fichier différent sur certains systèmes.
Glyphes emoji et pictographiques Passent sur les systèmes modernes mais cassent les anciens pipelines CI et chemins CDN.

Étapes de normalisation appliquées

  1. Conversion en ASCII. Les lettres accentuées deviennent leur lettre de base : café devient cafe, naïve devient naive. Les écritures sans équivalent ASCII (CJK, emoji) sont supprimées.
  2. Remplacement des caractères interdits. \ / : * ? " < > | et les caractères de contrôle deviennent votre caractère de remplacement (par défaut : tiret).
  3. Réduction des espaces. Les séries d’espaces et de tabulations deviennent un seul caractère de remplacement.
  4. Coupe des bords. Les points et caractères de remplacement en début et fin de nom sont supprimés ; un résultat vide devient file.
  5. Extensions préservées. Les points à l’intérieur du nom ne sont pas remplacés, donc .pdf, .jpg, .tar.gz survivent ; seuls les points finaux sont supprimés.

Conseils

  • Conservez l’extension. Les points à l’intérieur d’un nom sont conservés, donc .pdf, .jpg, .tar.gz restent tels quels.
  • Vérifiez les collisions. Résumé.pdf et Resume.pdf deviennent tous deux resume.pdf, car les accents sont toujours convertis. Vérifiez la sortie avant de renommer sur place.
  • Chemins web. Pour les URLs, encodez également en pourcentage après assainissement, ou mieux, gardez le slug de l’URL comme un sous-ensemble de [a-z0-9-] afin qu’aucun encodage ne soit nécessaire.

Questions fréquentes

Pour les actifs web et les ZIP multiplateformes, oui, cela évite des bugs subtils lorsqu’un fichier est téléchargé sur un serveur Windows insensible à la casse et lié depuis un CDN Linux sensible à la casse. L’assainisseur ne change jamais la casse, donc passez vous-même les noms en minuscules si nécessaire. Pour un travail local, c’est une question de goût.

Les espaces sont légaux sur tous les systèmes d’exploitation modernes mais ils forcent l’encodage d’URL (%20), cassent de nombreux pipelines shell et perturbent les anciens outils. Les remplacer par un tiret élimine toute une catégorie de bugs.

L’assainisseur produit toujours de l’ASCII pur. Les lettres accentuées sont converties (café devient cafe), le cyrillique est transcrit en une approximation latine, et les caractères sans équivalent ASCII (CJK, thaï, emoji) sont supprimés. Si un système cible a besoin des noms non latins d’origine, conservez-les dans un fichier séparé.

Non, la liste est assainie en mémoire pendant la requête et n’est pas stockée ou écrite dans un journal par la suite.

Outils similaires

Outil disponible dans d’autres langues