четверг, 15 октября 2009 г.

Если программа и папка имеют одинаковое имя, то оболочка предпочтёт программу

Это перевод If a program and a folder have the same name, the shell prefers the program. Автор: Реймонд Чен.

Если у вас есть папка с именем, скажем, C:\Folder и программа с именем C:\Folder.exe, и вы набираете C:\Folder в диалоге Пуск/Выполнить, то вы запустите этим программу, а не откроете папку.

Почему так?

Потому что часто у нас есть
D:\Setup.exe 
D:\Setup\
...
Тут у нас есть программа установки в корне диска, так же как и папка с установочными файлами.

До Windows 95 вы не могли открыть папку, печатая её имя (если вы хотели просмотреть её в менеджере файлов, вам нужно было явно запустить менеджер файлов). В результате, программы, написанные для предыдущих версий Windows, имели инструкции по установке типа:
Вставьте дискету, помеченную "Setup" (CD были для богатеньких)
В менеджере файлов выберите Файл/Выполнить.
В диалоговом окне напишите "A:\SETUP" и нажмите Enter.
Поскольку не было никакой вещи типа "открытие папки", то тогда единственным вариантом был запуск программы A:\SETUP.EXE.

От Windows 95 требовалось предпочитать программу папке, чтобы все эти инструкции оставались верными (ну, заменяя кнопкой Пуск меню Файл).

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

Но что если вам на самом деле нужна была именно папка?

Добавьте обратный слэш к имени, тогда путь будет интерпретироваться как папка (A:\SETUP\).

2 комментария:

  1. А не потому ли, что папка не является выполняем файлом? а при задании команды "A:\SETUP" интерпретатор пытается запустить, то что написано, а не использовать команду
    explorer A:\SETUP

    ОтветитьУдалить
  2. >>> А не потому ли, что папка не является выполняем файлом?
    А вы попробуйте ввести "C:\Windows" в Пуск/Выполнить.

    ОтветитьУдалить

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

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