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

9

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 un système d'exploitation basé sur Windows Ceci est très important pour moi, en donnant le nom du fichier / dossier qui contient ce type de caractères.

J'ai déjà cherché et référé tant de sites, pour ces problèmes mais tous sont sans espoir. J'ai également lu la page de support de Microsoft, ils suggèrent d'utiliser d'autres caractères. Ceci est son lien, https://support.microsoft.com/en-us/kb/177506

J'essaie déjà le bouton Alt + le numéro de code ASCII de ce type de caractères spéciaux, à partir de la touche du pavé numérique, il suffit de renommer l'exemple fichier / dossier et d'appuyer sur Alt + 60 (pour <caractères). personnages: \ / : * ? "<> |

Suggérez-moi une solution appropriée pour que je puisse donner le nom de mon fichier / dossier avec ce type de caractères spéciaux.

Kirit_Vanani
la source
Juste curieux: pourquoi en avez-vous besoin?
Kamil Maciorowski
@ kamil C'est pour donner le nom de mon fichier / dossier, et une tâche difficile pour moi.
Kirit_Vanani
@ PIMP_JUICE_IT Je l'ai déjà fait, (literalString -literalPath mais toujours pas de succès.
Kirit_Vanani
même si vous pouviez créer des fichiers avec ces caractères, aucun programme ne pourrait les ouvrir ou les enregistrer.
Keltari
10
- Comment puis-je me lécher le coude? - Tu ne peux pas. - Mais je dois. - Vous pouvez vous casser le bras et essayer mais votre bras sera alors inutile. - Je m'en fiche, j'ai juste besoin de me lécher le coude.
Kamil Maciorowski

Réponses:

16

C'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 aller et trouver une autre façon de résoudre votre problème.

Ces caractères ne sont pas autorisés par les appels de fonction du système d'exploitation Windows qui gèrent les noms de fichiers.

Ils ne sont spécifiquement pas autorisés car ils ont une autre utilisation:

  • \- Réservé pour une utilisation comme séparateur de chemin et caractère d' échappement
  • / - Réservé pour une utilisation comme séparateur de chemin
  • : - Réservé pour une utilisation comme délimiteur de nom de lecteur
  • *et ?- Réservé pour une utilisation en tant que joker caractères
  • "- Réservé pour une utilisation entre guillemets contenant des espaces
  • <, >et |- Réservé pour une utilisation en tant qu'opérateurs de redirection de commandes

Vous pouvez bien sûr 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 à l'aide de programmes Windows et 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 nommage

Les règles fondamentales suivantes permettent aux applications de créer et de traiter des noms valides pour les fichiers et les 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 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 non autorisé par le système de fichiers cible.

Fichiers de nommage source , chemins et espaces de noms


Mais je veux vraiment faire ça de toute façon.

Installez cygwin et utilisez touch.

Je n'ai pas testé toutes les possibilités mais le travail suivant:

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 voir, 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

entrez la description de l'image ici

DavidPostill
la source
J'apprécie votre réponse, elle est un peu utile, mais mon problème reste le même .. Je pense que n'importe quel autre super utilisateur peut renommer ces caractères spéciaux.
Kirit_Vanani
2
@Kirit Vous pouvez créer des fichiers avec ces caractères mais Windows ne peut rien faire avec eux et vous obtiendrez des erreurs lorsque vous essayez d'utiliser ces fichiers depuis Windows.
DavidPostill
@ DavidPostill Ohh, comment créer un nom de fichier avec ces caractères. Cela ne me dérange pas si cela donne une erreur, mais maintenant la tâche est de donner ce type de nom de personnage .. Pour accéder à ce fichier, j'utiliserai d'autres
systèmes d'exploitation
1
@Kirit, je vous l'ai déjà dit dans la réponse "Vous pouvez bien sûr 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)."
DavidPostill
3
@Kirit Je vous ai déjà dit que ce n'était pas possible .
DavidPostill
3

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

Clayton
la source
1
Cela ou en utilisant des caractères similaires. Avec Unicode, tout est possible. 🎃
Daniel B
@ Craig620 Peut-être que ce ne sera pas possible pour moi. peut me donner un indice.
Kirit_Vanani
Pas sûr, juste une idée folle qui m'est venue à l'esprit. Peut-être qu'il y a un forum Stack Exchange pour la typographie ou la publication que vous pourriez demander?
Clayton
2

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 n'est pas sensible à la casse. Il utilise tous les caractères Unicode, sauf: '"' '*' '/' ':' '<' '>' '?' '\' '|' NB Les noms ne peuvent pas se terminer par un point '.' Ou un espace ''.

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

ChrisInEdmonton
la source
NTFS n'est pas le problème. (En fait, cela autorise très bien ces caractères - il le fallait , pour la prise en charge d'Interix.) Le problème est Windows lui-même, c'est-à-dire que les restrictions sont imposées par les API Win32, quelle que soit la FS sous-jacente.
user1686
@grawity, vous semblez avoir raison sur la base de mes investigations ultérieures. J'ai modifié ma réponse pour refléter cela.
ChrisInEdmonton
Je pense que NTFS n'est pas un problème. Il doit avoir une solution. Lorsque j'accède à un lecteur NTFS à partir d'un système d'exploitation Linux, je peux taper ce type de caractères.
Kirit_Vanani
"Les noms ne peuvent pas se terminer par Dot". Incorrect. Vous pouvez déposer des noms se terminant par .. Vous ne pouvez pas faire grand chose avec eux de cmd:)
DavidPostill
1
@Kirit On vous a dit à plusieurs reprises que ce n'était pas possible .
DavidPostill