Почему тильда ('~') идет перед цифрами в именах файлов NTFS?


0

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

Мое решение до сих пор состоит в том, чтобы переименовать папки (настолько незаметно, насколько это возможно), чтобы «заархивированные» папки были в конце списка. Я решил пойти с добавлением символа тильды ( ~) в начало имен папок, ожидая увидеть ~папки с префиксом под номером с префиксом при сортировке по имени в порядке возрастания.

Но вместо чего-то вроде

parent folder:
  123
  456
  789
  ~012

Я вижу это:

parent folder:
  ~012
  123
  456
  789  

Это удивительно, если учесть, что NTFS использует Unicode в качестве символов имени файла, а значение Unicode в тильде выше, чем в [0-9]символах, которые следует указывать в лексикографическом порядке.

В чем причина поведения, которое я наблюдаю, и как сделать так, ~чтобы папки с префиксом сортировались после номеров с префиксом?

Редактировать: для отображения содержимого папки я в основном использую FAR Manager. Но пока его сортировка по имени выглядит так же, как в Windows Explorer. Таким образом, решение, которое работает для Windows Explorer, также будет работать для FAR Manager.


Как именно вы отображаете имена файлов? Пожалуйста, отредактируйте вопрос и будьте конкретны.
DavidPostill

Сортировка в Windows не всегда по числовому значению символов. В проводнике Windows обычные знаки препинания предшествуют буквенным. Это включает в себя тильду.
LMiller7

@ LMiller7 Есть ли формальное описание порядка символов в именах файлов Windows? Чтобы я мог подобрать символ, который на самом деле предшествовал бы цифровым цифрам.
Полусоник

1
Более новая Windows также использует своего рода «умное» обнаружение нумерации. Это в основном так, что вы не получаете последовательность, такую ​​как 1, 10, 11, 12, 2, 3, 4, 5, 6, 7, 8, 9, но также, кажется, обнаруживает незначительные смещения символов и корректирует последовательность в соответствии с числа, несмотря на любой порядок символов таблицы.
BeowulfNode42

@Semisonic MSDN утверждает, что только знаки препинания предшествуют буквенному. Кто они, я не знаю. Есть только несколько символов ASCII над 'z', и я подозреваю, что они ведут себя так же. Есть много символов в расширенном диапазоне ASCII выше 160, которые будут работать. Я уверен, что вы можете найти тот, который подходит и не слишком сложно войти.
LMiller7
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.