web-dev-qa-db-fra.com

Comment créer un nom de dossier ou un nom de fichier avec des caractères spéciaux tels que \ /: *? "<> |

Mon problème est que, je ne peux pas donner le nom de mon dossier ou fichier avec des caractères spéciaux comme\/: *? "<> | dans Windows basé sur O. Ceci est très important pour moi, cela donnant le nom du fichier/dossier qui contient ce type de caractères.

Je recherche déjà et renvoie tellement de sites, pour ces problèmes, mais tous sont sans espoir. J'ai aussi lu la page de support de Microsoft, ils suggèrent d'utiliser d'autres caractères. C'est son lien, https://support.Microsoft.com/en-us/kb/177506

J'ai déjà essayé le bouton Alt + ASCII le numéro de code de ce type de caractères spéciaux, à partir de la touche pavé numérique, il suffit de renommer le fichier/dossier et d'appuyer sur Alt + 60 (pour <caractères). ne peut contenir aucun des caractères suivants:\/: *? "<> |

Suggérez-moi une solution appropriée pour pouvoir nommer mon fichier/dossier avec ce type de caractères spéciaux.

8
Kirit_Vanani

Ceci est très important pour moi, nommer le fichier/dossier qui contient ces caractères.

Cela peut être important pour vous, mais vous devrez laisser cela de côté et trouver un moyen différent de résoudre votre problème.

Ces caractères ne sont pas autorisés par les appels de fonction Windows qui gèrent les noms de fichiers.

Ils ne sont spécifiquement pas autorisés car ils ont un autre usage:

  • \ - Réservé pour une utilisation en tant que séparateur de chemin et caractère échappement
  • / - Réservé pour être utilisé comme séparateur de chemin
  • : - Réservé pour une utilisation en tant que délimiteur de nom de lecteur
  • * et ? - Réservé pour une utilisation en tant que caractère générique caractères
  • " - Réservé pour une utilisation avec quote noms contenant des espaces
  • <,> et | - Réservé à une utilisation en tant que commande redirection opérateurs

Vous pouvez bien entendu créer des fichiers avec des noms contenant ces caractères en utilisant un système d'exploitation différent (tant que ce système d'exploitation peut lire/écrire un système de fichiers Windows).

Cependant, vous ne pourrez rien faire avec ces fichiers avec des programmes Windows, ils ne comprendront pas les noms de fichiers et généreront des erreurs.


Nommer des fichiers, des chemins et des espaces de noms

Conventions de dénomination

Les règles fondamentales suivantes permettent aux applications de créer et de traiter des noms valides pour des fichiers et des répertoires, quel que soit le système de fichiers:

...

Utilisez n'importe quel caractère de la page de codes actuelle pour un nom, y compris les caractères Unicode et les caractères du jeu de caractères étendu (128 à 255), à l'exception des éléments suivants:

  • Les caractères réservés suivants:

    < (less than)
    > (greater than)
    : (colon)
    " (double quote)
    / (forward slash)
    \ (backslash)
    | (vertical bar or pipe)
    ? (question mark)
    * (asterisk)
    
  • Valeur entière zéro, parfois appelée caractère ASCII NUL.
  • Caractères dont les représentations entières sont comprises entre 1 et 31, à l'exception des flux de données alternatifs où ces caractères sont autorisés. Pour plus d'informations sur les flux de fichiers, voir Flux de fichiers.
  • Tout autre caractère que le système de fichiers cible n'autorise pas.

Source noms, fichiers, chemins et espaces de noms


Mais je veux vraiment faire ça quand même.

Installez cygwin et utilisez touch.

Je n'ai pas testé toutes les possibilités mais les travaux suivants:

touch :
touch \|
touch \"
touch \>

Exemple de sortie:

DavidPostill@Hal /f/test/impossible
$ ll
total 0
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:03 '"'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 :
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 '|'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:07 '>'

Comme vous pouvez le constater, ils ne sont pas utilisables sous Windows:

F:\test\impossible>dir
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\impossible

10/08/2016  21:07    <DIR>          .
10/08/2016  21:07    <DIR>          ..
10/08/2016  21:03                 0 
10/08/2016  21:02                 0 
10/08/2016  21:07                 0 
10/08/2016  21:02                 0 
               4 File(s)              0 bytes
               2 Dir(s)  1,772,601,536,512 bytes free

enter image description here

16
DavidPostill

Construisez votre propre jeu de polices. Remplacez certains des caractères que vous n'utilisez pas par les images des caractères réservés.

3
Clayton

Sous Windows, vous ne pouvez pas créer de fichiers avec ces caractères. Il n'y a pas de solution, ces caractères sont interdits par l'API Win32.

Win32 est un sous-ensemble de l'espace de noms POSIX et ne respecte pas la casse. Il utilise tous les caractères Unicode, à l'exception de: '' '' * ''/'': '' <''> ''? ' '\' '|' NB Les noms ne peuvent pas se terminer par un point '.' Ou un espace ''.

- http://dubeyko.com/development/FileSystems/NTFS/ntfsdoc.pdf

2
ChrisInEdmonton