определение имени файла? - PullRequest
5 голосов
/ 11 ноября 2008

После многих лет программирования меня все еще сбивают с толку некоторые простые вещи.

Существует ли общепринятое определение имени файла?

Даже статья в Википедии смешивает две интерпретации.

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

Однако затем оно продолжается:

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

Итак, простые вопросы:

  • как правильно определить имя файла (включая ссылки)
  • как мне однозначно назвать переменные для:
    • путь к файлу (может быть абсолютным / полным или относительным)
    • путь к ресурсу, который может быть файлом / каталогом / сокетом

Ответы [ 4 ]

8 голосов
/ 11 ноября 2008

Никаких ссылок, просто на местном языке из опыта. Когда я конкретен, я склонен использовать:

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

filename: символы, необходимые для идентификации файла в текущем каталоге.

extension: символы в конце имени файла, которые обычно идентифицируют тип файла. По соглашению расширение обычно начинается с точки ("."), А имя файла может содержать более одного расширения.

basename: имя файла до (но не включая) точки, начинающей первое расширение.

0 голосов
/ 11 ноября 2008

Опять нет ссылок, но спецификация имени файла зависит от операционной системы или, точнее, от файловой системы. Начнем с ранних версий DOS (дисковая операционная система). Имена файлов представляли собой 8 имен символов, содержащих цифры, буквы, тире и подчеркивания. За ними следовали три, два, один или даже нулевое расширение символов, используемое для определения типа файла. Точка отделяла имя от расширения. Имя должно быть уникальным в каталоге.

Вы можете расширить имя, добавив имя каталога или серию имен каталогов. символ косой черты отделял имена каталогов друг от друга и от имени файла. Это обычно упоминалось как имя пути. Путь был относительно текущего каталога.

Наконец, в DOS вы можете включить имя диска. Обычно одна буква сопровождается: и косой чертой (в некоторых системах две косые черты). Добавление диска к пути сделало его абсолютным, а не относительным.

Сегодня большинство из нас используют длинные имена файлов, которые не соответствуют старому 8-символьному шаблону из трех символов. Тем не менее, многие файловые системы сохраняют такие как name и используют длинное имя просто как указатель на идентификатор старого стиля.

0 голосов
/ 11 ноября 2008

файл · имя и имя файла
(fīl'nām ') Произношение Ключ n. имя, данное компьютерному файлу для отличать его от других файлов, часто содержащий расширение, которое классифицирует его по типу.

@ Dictionary.com

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

Итак ... прежде чем вы начнете думать о путях и тому подобном, вы должны установить область действия. Вы в мире Unix? Вы в мире душ / окна?

0 голосов
/ 11 ноября 2008
...