2011-01-27 3 views
75

Где я могу найти список допустимых символов в именах файлов, в зависимости от операционной системы? (например, в Linux символ «:» разрешен в именах файлов, но не в Windows)Разрешенные символы в имени файла

+0

.NET предоставляет эту информацию для Windows. – leppie

+0

http://stackoverflow.com/questions/2679699/what-characters-allowed-in-file-names-on-android/13502029 – kreker

+4

@kreker обратите внимание, что ваш вопрос касается Android – congusbongus

ответ

63

Вы можете начать с страницы Wikipedia Filename. Он имеет довольно приличную таблицу (Comparison of filename limitations), в которой перечислены зарезервированные символы для довольно большого количества файловых систем.

Как и зарезервированные имена файлов, такие как CON под MS-DOS. Я помню, как укусил этот момент, когда я сократил файл include от const.h до con.h и потратил полчаса на то, чтобы выяснить, почему компилятор висел. Оказывается, DOS игнорирует расширения для устройств, так что con.h был точно таким же, как con, входная консоль (то есть, конечно, компилятор ждал меня до типа в файла заголовка до его продолжения).

+3

Я нахожу, что страница Википедии несколько расплывчата и запутанна, например «Некоторые операционные системы запрещают некоторые конкретные символы ...». Я действительно ищу полную таблицу, в которой перечислены все разрешенные и запрещенные символы. –

+4

@python, не смотрите на этот стол, посмотрите на большой хонкин под ним (под названием «Сравнение ограничений имен файлов»). Это не так расплывчато по содержанию. – paxdiablo

+0

Ах, ладно, не видел этого :) –

6

ОК, так что, глядя на Comparison of file systems, если вы заботитесь только о главных игроках файловых систем:

  • Windowz (FAT32, NTFS): Любая Unicode, кроме NUL, \, /, :, *, ", < , >, |
  • Mac (HFS, HFS +): Любой действительный Unicode, кроме : или /
  • Linux (внутр [2-4]): Любые байты, кроме NUL

поэтому любые байты, кроме NUL, \, /, :, *, ", <, >, | и вы не можете иметь файлы/папки звонят . или .. и без контрольных символов (конечно).

+4

Window * z * lol :) – userlond

+5

Неправильное использование. Linux не позволяет '/'. Windows не разрешает обратную косую черту и некоторые строки (например, 'CON'). – kgadek

+0

да, поэтому я сказал * кроме *. – CpILL

16

В ОС Windows создайте файл и дайте ему недопустимый символ, например \ в имени файла. В результате вы получите всплывающее окно со всеми недопустимыми символами в имени файла.

enter image description here

0

Чтобы быть более точным о Mac OS X (теперь называется MacOS) / в Finder интерпретируется : в файловой системе Unix.

Это было сделано для обратной совместимости, когда Apple перешла из Classic Mac OS.

Допустимо использовать / в имени файла в Finder, глядя на тот же файл в терминале, который будет отображаться с помощью :.

И это работает наоборот тоже: вы не можете использовать / в имени файла с терминалом, но : ОК и будет отображаться как / в Finder.

Некоторые приложения могут быть более ограничительными и запрещать оба символа избегать путаницы или потому, что они сохраняют логику с предыдущей классической ОС Mac или для совместимости имен между платформами.

Смежные вопросы