Каковы правила для расширений файлов в Windows и Unix? - PullRequest
1 голос
/ 07 января 2009

В настоящее время я использую File :: Basename fileparse, чтобы отделить каталог, базовое имя файла и его расширение, используя что-то вроде этого:

my($myfile_name,$mydirectory, $file_extension) = fileparse($$rhash_params{'storage_full_path_location'},'\..{1,4}');

Но обратите внимание, что есть вариант, в котором вы можете на самом деле предоставить массив суффиксов для функции, этот массив будет содержать все известные расширения файлов.

Итак, я пытаюсь найти безопасный способ сделать это, поскольку я видел, что у меня есть странные имена файлов для обработки, например, file.0f1.htm и т. Д.

Вопрос:

  1. Есть ли список часто используемых расширение для Windows и Unix системы? Но в моем случае это в основном для Windows.
  2. И безопасно ли Предположим, что все имена файлов в Windows должна иметь расширение заканчивается трехбуквенными символами?

И если есть еще лучший способ сделать это, пожалуйста, поделитесь.

Спасибо.

Обновление:

Так что, очевидно, я должен быть пьян, чтобы забыть об этом другом расширении. :) Таким образом, я обновил текущее регулярное выражение, чтобы разрешить от 1-4 символов.

В этом случае, как мне изменить строку регулярного выражения, чтобы она соответствовала ей? Или это даже лучшая идея, чтобы найти все эти часто используемые расширения от Google и поместить их в массив для передачи вместо функции? Моими пользователями обычно являются студенты или преподаватели.

Ответы [ 2 ]

3 голосов
/ 07 января 2009

1. Есть ли список часто используемых расширений для Windows и Unix системы? Но в моем случае это в основном для Windows.

Да, загружается по всему Интернету: http://www.google.com/search?q=common+file+extensions

2. И безопасно ли предположить, что все имена файлов в Windows должны иметь расширение, заканчивающееся тремя буквами символы?

Нет, вполне возможно использовать '.c', '.java' и т. Д. В Windows.

1 голос
/ 07 января 2009

В вашем коде есть несколько предположений о неисправности:

  • файлы не должны иметь расширений. Например, большинство исполняемых двоичных файлов в Unix / Linux / ... вообще не имеют расширения. Их просто называют "bash", "wget", "sed", "Xorg", ...
  • не обязательно должны быть длиной в три символа, как @Alnitak уже сказал вам: ".c", ".java", ".mpeg", ".jpeg", ".html" все прекрасно и довольно широко расширение распространения
  • резать в конце "." это, вероятно, заставка, но все равно может не работать с файлами без расширений или с несколькими (или многочастными) расширениями, такими как «.tar.gz», «tar.bz2», которые встречаются довольно часто в Unix / Linux / .. .-World
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...