Welche Zeichen können verwendet werden, um Doppelpunkte in Ordnernamen anhand einer Tageszeit zu ersetzen?

9

Es ist häufig praktisch, Dateien und Ordner mit Datum und Uhrzeit zu benennen, z. B. im Standardformat ISO 8601 : 2014-12-10T22:35:28.460Z.

Leider verwendet das HFS + -Dateisystem des Mac COLON als Pfadtrennzeichen, genau wie Unix-ähnliche Betriebssysteme SOLIDUS /(Schrägstrich) und Microsoft-Betriebssysteme REVERSE SOLIDUS \(Backslash) verwenden. Alle drei Zeichen müssen vermieden werden, wenn eine Datei oder ein Ordner aus Kompatibilitätsgründen benannt wird.

Welcher Charakter könnte üblicherweise als Ersatz für den KOLON verwendet werden?

  • Die Verwendung eines HYPHEN -macht es schwierig, die Konvertierung in das Standardformat programmgesteuert umzukehren.
  • In ähnlicher Weise .erschwert die Verwendung eines FULL STOP (Punkt) die Rückwärtskonvertierung, da sie als Sekundenbruchteil falsch interpretiert werden.

Wenn Sie beispielsweise in Java 8 unter OS X Mountain Lion programmieren, führt das Aufrufen File::mkdir()von Zeichenfolgen 2014-12-11T21:33:08zu einem Ordner mit dem Namen 2014-12-11T21/33/08.

Basil Bourque
quelle
3
Nahezu alle modernen Dateisysteme unterstützen Leerzeichen in Dateinamen. Wenn die Lesbarkeit keine Rolle spielt, entfernen Sie die beleidigenden Zeichen und verwenden Sie ein festgelegtes Format, z. B.: JJJJMMTTTHHMMSSZ.
Brian Duke
Warum nicht einfach das verwenden: Es scheint von der Shell aus einwandfrei zu funktionieren. Ich vermute, dass nur OS <= 9 und Classic ein Problem haben: Heutzutage ist dies ein Problem. AL: damit MS-Betriebssysteme / als Verzeichnisaufteilung verwenden können
user151019
@Mark Moderne Versionen des Finders können einen Doppelpunkt verarbeiten. Während des programmgesteuerten Zugriffs treten jedoch Probleme auf.
Basil Bourque
Ich hatte noch nie Probleme beim Zugriff auf eine Datei mit einem Doppelpunkt im Namen. Es sieht von Finder einfach komisch aus, da es auf einen Schrägstrich umgestellt wurde.
0942v8653
2
Insbesondere erlaubt HFS +, dass Dateinamen / aber keinen Doppelpunkt enthalten. Im Terminal (oder überall dort, wo auf das Dateisystem über die POSIX-API anstelle der Macintosh-API zugegriffen wird) wird das / in dem auf der Festplatte gespeicherten Namen in: in RAM und: in RAM zurück in / als neuen Dateinamen übersetzt wird im Katalog gespeichert. Programme, die die herkömmliche Macintosh-API verwenden, sind nicht betroffen und sehen das / so, wie es auf der Festplatte angezeigt wird. Auf diese Weise hat jede API nur ein einziges verbotenes Zeichen (also zwei, wenn Sie NUL zählen) und nur ein einziges Dateinamen-Trennzeichen, ohne sich gegenseitig zu stören.
Ganbustein

Antworten:

6

ISO 8601 "Basic" -Variante

Sie können die Verwendung des Doppelpunkts vermeiden, indem Sie Zeichenfolgen ( ) im ISO 8601- Format YYYYMMDDTHHMMSSZfür die Benennung von Dateien und Ordnern verwenden. Der Standard sieht vor, dass die Trennzeichen im YYYY-MM-DDTHH:MM:SSZFormat weggelassen werden.

Beide Beispiele gelten also nach dem Standard:

2016-03-27T07: 01: 02Z

20160327T070102Z

Wenn Sie diese Zeichenfolgen mit bestimmten Programmier- oder Skriptsprachen verarbeiten müssen, müssen Sie sie möglicherweise in das erweiterte Format konvertieren, das Trennzeichen (Bindestriche, Doppelpunkte) und Zeitzoneninformationen enthält.

Internationale Standard-Datums- und Uhrzeitnotation - "Wenn ein Datums- und ein Zeitwert zusammen in einem einzigen Datenfeld gespeichert werden, schlägt ISO 8601 vor, sie Twie in 19951231T235959" durch einen lateinischen Großbuchstaben zu trennen . " Das Tin der Mitte ist also optional ( 19951231235959), wird aber empfohlen.

Omar Vasquez
quelle
Gute Lösung. In der Tat haben die besseren Datums- und Uhrzeitbibliotheken wie das in Java 8 und höher integrierte Java.time- Framework sowie Joda-Time kein Problem damit, entweder das „Basisformat“ oder das längere Format mit Trennzeichen zu analysieren.
Basil Bourque
3

Der Doppelpunkt Unicode 0x02F8 (Doppelpunkt ˸ vs Doppelpunkt :) wird vom Finder oder anderen Skripten nicht als Trennzeichen interpretiert. (Weitere Informationen zum Doppelpunkt hier: http://www.charbase.com/02f8-unicode-modifier-letter-raised-colon )

Die Art und Weise, wie Sie dieses Zeichen eingeben, hängt von Ihrer OS X-Version ab. Weitere Informationen finden Sie auf der Apple Support-Seite: http://support.apple.com/en-us/HT201586

Kent
quelle
3
Interessante Idee. Diese Antwort ist fast zu klug. Das Aussehen des normalen COLON kann beim Parsen zu Verwirrung führen.
Basil Bourque
0

Die hebräische Interpunktion ׃ funktioniert gut für mich ... Unicode 05C3 ...

felsig
quelle
2
Pass auf, dass der hebräische Doppelpunkt die Dinge wirklich durcheinander bringen kann, wenn er an Zahlen angrenzt! Versuchen Sie zu tippen 1(hebräischer Doppelpunkt) 2. Es wird rückwärts gerendert als 2:1! Etwas mit der hebräischen Richtung von rechts nach links. Auf jeden Fall wäre es äußerst verwirrend, wenn versucht würde, mit Sprachen von links nach rechts zu arbeiten.
wisbucky
Ja, das ist wahrscheinlich keine gute Alternative, wenn Text-Renderer versuchen, in den RTL-Modus zu wechseln, wenn sie auf dieses Zeichen stoßen :(
Matt M.
0

Ich habe das auch untersucht. Die meisten der alternativen Glyphen mit dem Wort ‚Doppelpunkt‘ in der Beschreibung sind ausgesprochen unattraktiv als Kolon Ersatz ( ˸, ܄, , , :,, and꞉`).

Es gibt eine andere Alternative, die mindestens eine ähnliche Zeichenbreite wie der ursprüngliche Doppelpunkt hat - das mathematische Symbol für ein Verhältnis : . Es sieht in einer Reihe von monospaced Schriftarten gut aus, ist aber in der Standardschriftart des MacOS-Systems etwas klein.

Hier wird es in einem Dateinamen verwendet:

/Users/me/Books/Book Title: Book Subtitle.pdf [eingeschränkte Doppelpunkt-Glyphe] /Users/me/Books/Book Title∶ Book Subtitle.pdf [zulässige Verhältnis-Glyphe]

Robert
quelle