Какие символы могут использоваться для замены двоеточия в именах папок с использованием времени суток?

9

Часто бывает удобно называть файлов и папок с указанием даты и времени, например , как стандарт ISO 8601 формат: 2014-12-10T22:35:28.460Z.

К сожалению, файловая система Mac HFS + использует COLON в качестве разделителя пути так же, как Unix-подобные ОС используют SOLIDUS /(косая черта), а ОС Microsoft используют REVERSE SOLIDUS \(обратная косая черта). Все три символа следует избегать при именовании файла или папки для совместимости.

Какой символ может быть обычно использован в качестве замены для COLON?

  • Использование HYPHEN -усложняет программное обратное преобразование в стандартный формат.
  • Аналогично, использование FULL STOP .(периода) затрудняет обратное преобразование, поскольку они будут неверно истолкованы как доли секунды.

Например, при программировании на Java 8 в OS X Mountain Lion, вызов File::mkdir()строки 2014-12-11T21:33:08приводит к папке с именем 2014-12-11T21/33/08.

Базилик Бурк
источник
3
Практически все современные файловые системы поддерживают пробелы в именах файлов. Кроме того, если удобочитаемость не является проблемой, почему бы просто не удалить символы, вызывающие помехи, и использовать заданный формат, например: ГГГГММДДТЧММСССЗ.
Брайан Дьюк
Почему бы просто не использовать: кажется, что все работает нормально из оболочки. Я подозреваю, что только OS <= 9 и classic имеют проблемы с: так что в настоящее время проблема. AL: поэтому операционные системы MS могут использовать / в качестве разделения каталога
user151019
@Mark Современные версии Finder могут обрабатывать двоеточие. Но во время программного доступа возникают проблемы.
Василий Бурк
У меня никогда не было проблем с доступом к файлу с двоеточием в имени. Это выглядит странно с Finder, так как он переключен на косую черту.
0942v8653
2
В частности, HFS + позволяет именам файлов содержать / но не двоеточие. Когда в Терминале (или в любом месте к файловой системе обращаются с использованием API POSIX вместо API Macintosh), имя / в имени, сохраненном на диске, преобразуется в: в ОЗУ, а: в ОЗУ переводится обратно в / в качестве нового имени файла хранится в каталоге. На программы, использующие традиционный Macintosh API, это не влияет, и они видят / так же, как на диске. Таким образом, каждый API имеет только один запрещенный символ (ну, два, если считать NUL) и только один разделитель имени файла, не мешая друг другу.
Ганбастейн

Ответы:

6

ISO 8601 «Базовый» вариант

Вы можете избежать использования двоеточия, используя строки стандартного формата ISO 8601 ( YYYYMMDDTHHMMSSZ) для именования файлов и папок. Стандарт допускает исключение разделителей из YYYY-MM-DDTHH:MM:SSZформата.

Таким образом, оба эти примера действительны в соответствии со стандартом:

2016-03-27T07: 01: 02Z

20160327T070102Z

Если вам нужно обработать эти строки с помощью определенных языков программирования или языков сценариев, возможно, вам придется преобразовать их в расширенный формат, который включает в себя разделители (дефисы, двоеточия) и информацию о часовом поясе.

Международное стандартное обозначение даты и времени - «Если дата и значение времени хранятся вместе в одном поле данных, то ISO 8601 предлагает разделять их заглавной латинской буквой T, как в 19951231T235959». Так что Tпосередине необязательно ( 19951231235959), но предлагается.

Омар Васкес
источник
Хорошее решение Действительно, лучшие библиотеки даты и времени, такие как интегрированная в Java 8 и более поздние версия среда java.time, а также Joda-Time , не имеют проблем с синтаксическим анализом ни «основного», ни более длинного формата, содержащего разделители.
Базилик Бурк
3

Поднятая двоеточие, Unicode 0x02F8 (поднятая двоеточие против двоеточия:) не будет интерпретироваться как разделитель Finder или другими сценариями. (Подробнее о поднятой толстой кишке здесь: http://www.charbase.com/02f8-unicode-modifier-letter-raised-colon )

Способ ввода этого символа зависит от версии OS X. Более подробную информацию можно найти на странице поддержки Apple: http://support.apple.com/en-us/HT201586.

Кент
источник
3
Интересная идея. Этот ответ почти слишком умный. Очень похожий на обычный COLON может привести к путанице при разборе.
Василий Бурк
0

Еврейская пунктуация ׃ прекрасно работает для меня ... Юникод 05C3 ...

скалистый
источник
2
остерегайтесь, что иврит двоеточие может действительно испортить вещи, когда рядом с числами! Попробуйте набрать 1(иврит двоеточие) 2. Это отдает как 2:1! Что-то с ивритом справа налево. В любом случае, было бы очень странно, если бы вы пытались использовать языки слева направо.
Висбуки
Да, это, вероятно, не лучшая альтернатива, если средства визуализации текста пытаются переключиться в режим RTL, когда сталкиваются с этим персонажем :(
Мэтт М.
0

Я тоже это исследовал. Большинство альтернативных глифов со словом «двоеточие» в описании решительно непривлекательное в качестве замены толстой кишки ( ˸, ܄, , , :,, and꞉`).

Существует еще одна альтернатива, по крайней мере , имеет аналогичную ширину символов в исходной толстой кишки - математический символ для соотношения: . Он отлично смотрится в ряде моноширинных шрифтов, но немного меньше стандартного системного шрифта MacOS.

Вот это используется в имени файла:

/Users/me/Books/Book Title: Book Subtitle.pdf [ограниченный глиф двоеточия] /Users/me/Books/Book Title∶ Book Subtitle.pdf [разрешенный глиф отношения]

Роберт
источник