В чем разница между каталогом и папкой?

108

Большинство людей используют термины «папка» и «каталог» как синонимы. С точки зрения программиста, есть ли разница, и если да, то в чем она? Зависит ли это от ОС или существует широкий общий консенсус? Это как минимум говорит о том, что разница есть.

мафу
источник
Что касается того, почему этот вопрос относится к SO и не является обманом, см. Meta.stackexchange.com/questions/79773/…
mafu
Но есть еще programmers.stackexchange.com

Ответы:

92

Проверьте раздел «Метафора папки» в Википедии . Здесь утверждается:

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

Если имеется в виду контейнер документов, более уместно термин «папка». Термин «каталог» относится к способу хранения на компьютере структурированного списка файлов и папок с документами. Различие может быть связано с способом доступа к каталогу; в системах Unix / usr / bin / обычно называется каталогом при просмотре в консоли командной строки, но при доступе через графический файловый менеджер пользователи могут иногда называть его папкой.

Ананд Шах
источник
Я имею в виду, что для меня это в основном то, что они одно и то же, лол.
Эндрю
Историческое примечание: командная строка UNIX, VAX / VMS и MS-DOS изначально использовала исключительно «каталог». В оригинальном Xerox Star 1970-х годов термин «папка» был введен как часть «метафоры рабочего стола», он был популяризирован Mac 1980-х годов и стал универсальным в более поздних графических интерфейсах, включая Windows. Но в командной строке это все еще «каталог».
Орион Лоулор
42

Папка не обязательно является физическим каталогом на диске. Это может быть, например, папка принтеров или папка панели управления Windows.

Раймонд Чен объясняет:

Windows 95 представила проводник Windows и вместе с ним папку терминов. Какая связь между папками и каталогами?

Некоторые люди считают, что Windows 95 переименовала каталоги в папки, но на самом деле это нечто большее.

Проводник Windows позволяет просматривать папки, которые являются контейнерами в пространстве имен оболочки. Каталоги - это один тип папок, а именно папки, которые соответствуют расположению в файловой системе. Существуют и другие типы папок, такие как Панель управления, Сетевое окружение или Принтеры. Эти другие типы папок представляют собой объекты в пространстве имен оболочки, которые не соответствуют файлам. Обычно термин виртуальная папка применяется для обозначения папок, которые не являются каталогами. Другими словами, у нас есть диаграмма Эйлера:

(Виртуальные папки = Папки - Каталоги)

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

AntonyW
источник
10
По придиркам вообще /procна диске тоже нет.
n611x007 03
16

Цитата Альваро Г. Викарио :

В большинстве случаев это взаимозаменяемые термины. Каталог - это классический термин, используемый с ранних времен файловых систем, а папка - это своего рода понятное имя, которое может показаться более знакомым пользователям Windows.

Основное отличие состоит в том, что папка - это логическая концепция, которая не обязательно сопоставляется с физическим каталогом. Каталог - это объект файловой системы. Папка - это объект графического интерфейса. Википедия объясняет это так :

Папка с именем, являющаяся аналогом папки с файлами, используемой в офисах, и первоначально использовавшаяся Apple Lisa, используется практически во всех средах рабочего стола современных операционных систем. Папки часто обозначаются значками, которые визуально напоминают физические папки с файлами.

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

Если имеется в виду контейнер документов, более уместно термин «папка». Термин «каталог» относится к способу хранения на компьютере структурированного списка файлов и папок с документами. Его можно сравнить с телефонным справочником, который содержит списки имен, номеров и адресов и не содержит самих документов.

мафу
источник
13
  • Каталог - это концепция файловой системы. В графическом интерфейсе каталог представлен в виде папки .
  • Пример 1: системы Unix /usr/bin/обычно называют каталогом при просмотре в консоли командной строки, но при доступе через графический файловый менеджер пользователи могут иногда называть его папкой.
  • Пример 2 : Windows использует как каталог (в таких командах, как mkdir, cd), так и папку (в графическом интерфейсе).

Каталог : Имя каталога представляет собой аналогию с телефонным справочником:

Изображение телефонного справочника


Папка : имя папки представляет собой аналогию с папкой с файлами, используемой в офисах:

Изображение офисных папок


Аналогия:

  • Папка похожа на комнату.
  • Справочник подобен владельцу отеля, который знает все номера.

Если вам нужна конкретная папка, вы используете каталог. Если вам нужен конкретный номер, спросите у владельца отеля. Источник

Премрадж
источник
4

Раньше я не знал разницы между этими двумя словами на английском языке, даже в редакторе реестра Windows я смог найти два подключа, Folderи Directory, под HKEY_CLASSES_ROOT.

Я не знал разницы, пока не создал некоторые значения вручную в реестре и не заметил различия пунктов контекстного меню. Если я создаю узел HKEY_CLASSES_ROOT\Folder\shellтолько под , я обнаружил, что он появляется в контекстном меню как виртуальных папок (ака system directory), например Recycle Bin, так и каталога файловой системы, например C:\Windows.

Если я создаю узел HKEY_CLASSES_ROOT\Directory\shellтолько под , он появляется только в контекстном меню каталога файловой системы, например C:\Windows, но не в виртуальной папке. Итак, как сказал @AntonyW, в Windows папки = виртуальные папки + каталоги файловой системы.

賈 可 Джеки
источник
1

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

В двух примерах, с которыми я столкнулся, мое приложение не могло открыть путь, указанный пользователем. Один из этих примеров был связан с OneDrive; Я не помню всех обстоятельств другого примера. В любом случае отображаемое имя сохраняется в ADS с именем ms-properties: $ DATA .

Вы можете использовать CMD.EXE для вывода списка ADS с помощью DIR / R. Переименование таких папок с помощью пункта меню «Свойства» в проводнике файлов изменяет содержимое этого ADS, и имя, отображаемое для конечного пользователя в проводнике, является тем, что он ввел. Но эта процедура не переименовывает каталог.

Дадли М.
источник
0

Ваша ссылка в основном описывает, что отличает техническую основу. В большинстве случаев люди используют их как взаимозаменяемые, и то, что они выбирают, в основном зависит от среды, из которой они происходят.

Если вы не занимаетесь разработкой кроссплатформенного приложения, которое будет изменять файлы, вам не нужно знать различия. Как только вы готовитесь к работе с несколькими разными типами файловых систем, вы должны знать их различия.

Не ждите, что люди знают, какой термин использовать и когда. Я считаю эти термины взаимозаменяемыми, так как различия известны слишком немногим людям.

Flyhard
источник
1
Но я не об этом спрашиваю.
mafu