Quels caractères peuvent être utilisés pour remplacer les deux-points dans les noms de dossier en utilisant une heure du jour?

9

Il est souvent pratique de nommer les fichiers et les dossiers avec une date et l' heure, telles que la norme ISO 8601 Format: 2014-12-10T22:35:28.460Z.

Malheureusement, le système de fichiers HFS + du Mac utilise le COLON comme séparateur de chemin, tout comme les systèmes d'exploitation de type Unix utilisent SOLIDUS /(barre oblique) et les systèmes d'exploitation Microsoft utilisent REVERSE SOLIDUS \(barre oblique inverse). Les trois caractères doivent être évités lorsque vous nommez un fichier ou un dossier pour des raisons de compatibilité.

Quel personnage pourrait être couramment utilisé en remplacement du COLON?

  • L'utilisation d'un HYPHEN, -il est difficile d'inverser par programme la conversion au format standard.
  • De même, l'utilisation d'un FULL STOP .(point) rend la conversion inverse difficile car ils seront mal interprétés comme des fractions de seconde.

Par exemple, lors de la programmation en Java 8 sur OS X Mountain Lion, l'appel File::mkdir()de chaîne 2014-12-11T21:33:08entraîne un dossier nommé 2014-12-11T21/33/08.

Basil Bourque
la source
3
Presque tous les systèmes de fichiers modernes prennent en charge les espaces dans les noms de fichiers. De plus, si la lisibilité n'est pas un problème, pourquoi ne pas simplement éliminer les caractères incriminés et utiliser un format défini, par exemple: AAAAAMMJJTHHMMSSZ.
Brian Duke
Pourquoi ne pas simplement utiliser le: il semble fonctionner correctement à partir du shell. Je soupçonne que seuls OS <= 9 et classic ont un problème avec: donc de nos jours, c'est un problème. AL: pour que les OS MS puissent utiliser / comme une division de répertoire
user151019
@Mark Les versions modernes du Finder peuvent gérer deux points. Mais lors de l'accès programmatique, des problèmes s'ensuivent.
Basil Bourque
Je n'ai jamais eu de problème pour accéder à un fichier avec deux points dans le nom. Il semble juste étrange de Finder, car il est passé à une barre oblique.
0942v8653
2
Plus précisément, HFS + permet aux noms de fichiers de contenir / mais pas deux points. Lorsque dans Terminal (ou n'importe où le système de fichiers est accessible à l'aide de l'API POSIX au lieu de l'API Macintosh), le / dans le nom tel qu'il est stocké sur le disque est traduit en: en RAM, et: en RAM est traduit en / comme un nouveau nom de fichier est stocké dans le catalogue. Les programmes utilisant l'API Macintosh traditionnelle ne sont pas affectés et voient le / tel qu'il apparaît sur le disque. De cette façon, chaque API n'a qu'un seul caractère interdit (enfin, deux si vous comptez NUL) et un seul séparateur de nom de fichier, sans interférer les uns avec les autres.
ganbustein

Réponses:

6

Variation «de base» ISO 8601

Vous pouvez éviter d'utiliser les deux points en utilisant des chaînes de format «de base» ISO 8601 ( YYYYMMDDTHHMMSSZ) pour nommer les fichiers et les dossiers. La norme permet d'omettre les séparateurs du YYYY-MM-DDTHH:MM:SSZformat.

Donc, ces deux exemples sont valides sous la norme:

2016-03-27T07: 01: 02Z

20160327T070102Z

Si vous devez traiter ces chaînes avec certains langages de programmation ou de script, vous devrez peut-être les convertir au format étendu qui intègre des séparateurs (tirets, deux-points) et des informations de fuseau horaire.

Notation internationale standard de la date et de l'heure - "Si une date et une valeur d'heure sont stockées ensemble dans un seul champ de données, alors ISO 8601 suggère qu'elles devraient être séparées par une majuscule latine T, comme dans 19951231T235959". Le Tmilieu est donc facultatif ( 19951231235959) mais suggéré.

Omar Vasquez
la source
Bonne solution. En effet, les meilleures bibliothèques de date-heure telles que le cadre java.time intégré à Java 8 et versions ultérieures ainsi que Joda-Time n'ont aucun problème à analyser le format «de base» ou le format plus long contenant des séparateurs.
Basil Bourque
3

Le signe deux-points surélevé, Unicode 0x02F8 (deux-points surélevé colon vs deux points:) ne serait pas interprété comme un séparateur par le Finder ou d'autres scripts. (Plus d'informations sur les deux points soulevés ici: http://www.charbase.com/02f8-unicode-modifier-letter-raised-colon )

La façon d'entrer ce caractère varie en fonction de votre version d'OS X. Plus de détails peuvent être trouvés sur la page d'assistance d'Apple: http://support.apple.com/en-us/HT201586

Kent
la source
3
Idée intéressante. Cette réponse est presque trop intelligente. Ressembler tellement au COLON ordinaire peut prêter à confusion lors de l'analyse.
Basil Bourque
0

La ponctuation hébraïque ׃ fonctionne très bien pour moi ... unicode 05C3 ...

rocheux
la source
2
attention, ce colon hébreu peut vraiment gâcher les choses lorsqu'il est adjacent aux nombres! Essayez de taper 1(deux points hébreux) 2. Il rend en arrière comme 2:1! Quelque chose à hébreu de droite à gauche. Quoi qu'il en soit, ce serait extrêmement déroutant si vous essayez de l'utiliser avec des langues de gauche à droite.
wisbucky
Oui, ce n'est probablement pas une excellente alternative si les moteurs de rendu de texte tentent de passer en mode RTL lorsqu'ils rencontrent ce personnage :(
Matt M.
0

J'ai aussi enquêté là-dessus. La plupart des autres glyphes avec le mot « colon » dans la description sont décidément peu attrayantes en remplacement du côlon ( ˸, ܄, , , :,, and꞉`).

Il existe une autre alternative que au moins a une largeur de caractère similaire au colon d' origine - le symbole mathématique pour un rapport: . Il a fière allure dans un certain nombre de polices à espacement fixe, mais il est un peu petit dans la police système MacOS par défaut.

Ici, il est utilisé dans un nom de fichier:

/Users/me/Books/Book Title: Book Subtitle.pdf [glyphe du côlon restreint] /Users/me/Books/Book Title∶ Book Subtitle.pdf [glyphe de rapport autorisé]

Robert
la source