@DavidSchwartz или иными словами, компания не продавала потенциальный рынок. Следовательно, назначение денежных потерь сомнительны с точки зрения продукта, если компания открыто рекламировала себя в качестве спекулятивного получать-богат-Bystro схемы. Если такие предположения биткоин принесли к столу на новый усыновителей - там не так много, любой может сделать об этом, кроме Я предполагаю, что воспитывать людей, какие риски они будут впитывать. @jeffatrackaid каждого работника открывает свой собственный файл (текст) и пишет строку за строкой. вы отвечаете слишком безмозглые..... почему существует старый и новый блок, их функция? @самолета нет, но информация отображается в правом сайдбаре. Цзин не принимает скриншоты страницы. Если вы найдите в этих папках, и читать Рейнхард и другие файлы, вы можете выяснить, что они для. Например, /Вирт содержит КВМ вещество ядра.

Проблема: .itmsp по папки показаны как файлы

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

enter image description here

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

  1. Каталог имеет известную расширение имени файла: .приложения .расслоение, .рамки, .плагин, .Кест, и так далее (как определено в /Система/библиотеки/CoreServices/CoreTypes.пакет/содержание/информация.файл plist. Это двоичный файл plist, открываем его с Xcode: открыты-в Xcode информация.файл plist).

  2. Каталог имеет расширение, что некоторые другие заявка представляет собой пакет типа (искать ком.яблоко.пакет в выводе списков MDL -имя kMDItemContentTypeTree <имя_папки> , чтобы выяснить.)

  3. Каталог имеет свой пакет набор бит (если GetFileInfo -АБ <имя_папки> возвращает 1, это набор.)

Случай 2. применяется для .itmsp по папки: приложения-загрузчика.приложение экспорт тип модели com.яблоко.программа iTunes-производителя.itmsp ПО и устанавливает его, чтобы соответствовать модели com.яблоко.пакет:

$ mkdir служат ФОО.itmsp по
$ списков MDL -имя kMDItemContentTypeTree ФОО.itmsp по/
kMDItemContentTypeTree = (
"ком.яблоко.программа iTunes-производителя.itmsp по",
"ком.яблоко.пакет",
(...)
)
$ грэп -Б 5-а 8 ком.яблоко.пакет /применения/Xcode.приложение/содержание/Приложения/Приложения\ загрузчик.приложение/содержание/информация.файл plist 
<ключ>UTExportedTypeDeclarations</ключ>
<массив>
<дикт>
<ключ>UTTypeConformsTo</ключ>
<массив>
<строка>ком.яблоко.пакет</строка>
<строка>общественности.композит-контента</строка>
</массив>
<ключ>UTTypeDescription</ключ>
 <строка>в iTunes пакет</строка>
<ключ>UTTypeIconFile</ключ>
<строка>itmsp по.icns по</строка>
<ключ>UTTypeIdentifier</ключ>
<строка>ком.яблоко.программа iTunes-производителя.itmsp по</строка>

Решение: повторно объявить тип модели com.яблоко.программа iTunes-производителя.itmsp по

Решение может быть повторно объявить тип модели com.яблоко.программа iTunes-производителя.itmsp ПО и расширение itmsp по как папку и силу запуска услуг использовать модифицированный тип декларации.

Важное примечание:

Хотя она надежно решает проблему ОП, предлагаемое решение, при нанесении на другие пакеты, не отображать их в виде папок.

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

Это касается применения погрузчика.приложение, которое находится в папке/программы/в Xcode.приложение/содержание/приложения/.

Если вы заинтересованы в частичное решение проверить конце этого ответа.

Для того чтобы иметь .itmsp по папки отображаются как папки с помощью поиска выполните следующие шаги:

  1. Откройте Automator в папку приложения и выберите Приложения:

    enter image description here

  2. Выберите утилиты в списке "медиатека" выберите пункт выполнить скрипт и перетаскиваем его на панель справа:

    enter image description here

  3. Заменить стандартный скрипт содержимое с выхода 0:

    enter image description here

  4. Сохраните программу в качестве itmspOpener:

    enter image description here

  5. Рядом Автоматизаторов.

  6. Выберите itmspOpener.приложение и показать его содержимое:

    enter image description here

  7. Найдите Содержание>Информация.plist и откройте его в вашем любимом редакторе:

    enter image description here

  8. Заменить эти разделы информация.файл plist:

    <ключ>CFBundleDocumentTypes</ключ>
    <массив>
    <дикт>
    <ключ>CFBundleTypeExtensions</ключ>
    <массив>
    <строка>itmsp по</строка>
    </массив>
    <ключ>CFBundleTypeName</ключ>
     <строка>itmsp по папке</строка>
    <ключ>CFBundleTypeRole</ключ>
    <строка>просмотр</строка>
    <ключ>CFBundleTypeIconFile</ключ>
    <строка>папка</строка>
    <ключ>LSTypeIsPackage</ключ>
    <ложных/>
    <ключ>LSHandlerRank</ключ>
    <строка>хозяин</строка>
    </дикт>
    </массив>
    (...)
    <ключ>UTExportedTypeDeclarations</ключ>
    <массив>
    <дикт>
    <ключ>UTTypeConformsTo</ключ>
    <массив>
    <строка>kUTTypeDirectory</строка>
    </массив>
    <ключ>UTTypeDescription</ключ>
     <строка>itmsp по папке</строка>
    <ключ>UTTypeIconFile</ключ>
    папка <строка>.icns по</строка>
    <ключ>UTTypeIdentifier</ключ>
    <строка>ком.яблоко.программа iTunes-производителя.itmsp по</строка>
    <ключ>UTTypeTagSpecification</ключ>
    <дикт>
    <ключ>общественности.имя файла-расширение</ключ>
    <строка>itmsp по</строка>
    </дикт>
    </дикт>
    </массив>
    

    Примечание: Почему kUTTypeDirectory вместо общественных.каталог в UTExportedTypeDeclarations? От компании Apple документация: важно: при использовании системы-определяется ИМП в вашем коде, вы должны использовать константы, определенные в UTCoreTypes.ч в рамках пусковых услуг при наличии, а не фактическая УТИ строк. Например, пройти kUTTypeApplication, а не “ком.яблоко.приложения”. “Система-объявил универсальных идентификаторов типа ” список этих констант в дополнение к ИМП строк.

  9. Связать .itmsp файл для itmspOpener и нажать кнопку Изменить все...:

    enter image description here

  10. Сброс базы данных служб запуска:

    $ lsregister -убить -Р-локальная в домене -домен системы -домен пользователя
    

    (на ОС х 10.8 lsregister находится в /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/.)

  11. Создать .папка itmsp ПО и список его свойств:

    $ foo3 команды mkdir.itmsp по
    $ списков MDL -имя kMDItemContentTypeTree foo3.itmsp по/
    kMDItemContentTypeTree = (
    "общественности.папку",
    "общественности.каталог",
    "общественности.пункт"
    )
    

    Потому что базы данных служб запуска был сброшен, теперь Finder показывает .папки itmsp по как папки.

  12. Открыть itmspOpener.приложение для загрузки своего файла plist и зарегистрировать в COM.яблоко.программа iTunes-производителя.itmsp по:

    $ откройте ~/рабочий стол/itmspOpener.приложение
    
  13. Запустить Программу Загрузчик.приложение:

    $ откройте/приложения/в Xcode.приложение/содержание/приложения/загрузчик приложения.приложение'
    

    Папка foo3.itmsp по - прежнему должен быть отображен как папку.

  14. Снова проверьте свойства папки:

    $ списков MDL -имя kMDItemContentTypeTree foo3.itmsp по/
    kMDItemContentTypeTree = (
    "общественности.каталог",
    "общественности.пункт",
    "общественности.содержание"
    )
    

    ком.яблоко.пакет не добавлена в папки атрибуты метаданных, поэтому Искатель-прежнему отображается .папки itmsp по как папки!

Автоматизированное решение: отображение .itmsp по папкам, а папки после входа

Для отображения .itmsp по папкам, а папки после входа:

  1. Создать itmspOpener.приложение и изменить свое Инфо.plist файл , как описано выше.

  2. Создать каталог/usr/местные/Бен/itmspTypeLoader с этим содержание (переменная itmspOpener указывает на место, где itmspOpener.приложение находится, менять по мере необходимости):

    #!/бин/Баш
    
    itmspOpener="/пользователи/Жауме/приложения/itmspOpener.приложения/"
    
    Эхо "$(дата): начало" > /tmp/и itmspTypeLoader.журнал
    спать 15
    Эхо "$(дата): удаление пусковых услуг базы данных" >> /tmp/и itmspTypeLoader.журнал
    /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -убить -Р-локальная в домене -домен системы -домен пользователя >> /tmp/и itmspTypeLoader.журнал
    спать 15
    Эхо "$(дата): начало $itmspOpener" >> /tmp/и itmspTypeLoader.журнал
    открытое $itmspOpener >> /tmp/и itmspTypeLoader.журнал
    сон 1
    Эхо "$(дата): запуск загрузчика приложения.приложение" >> /tmp/и itmspTypeLoader.журнал
    открыто "/применения/Xcode.приложение/содержание/приложения/загрузчик приложения.приложения/"
    
    # Подождите, пока процесс "загрузчик приложения.приложение" существует
    в то время как [ $(ПС -эф|команда grep -v с помощью команды grep|grep в -с "загрузчик приложения") -Пе 1 ]; делать
     сон 1
     Эхо "$(дата): ожидания" >> /tmp/и itmspTypeLoader.журнал
    сделано
    # Отправить сигнал term
    убить -термин, $(ПС -эф|грэп "применение погрузчика"|команда grep -v с помощью команды grep|awk и "{печать \$2}")
    если [ $? -экв. 0 ]; тогда
     Эхо "$(дата): загрузчик приложения убиты" >> /tmp/и itmspTypeLoader.журнал
    еще
     Эхо "$(дата): загрузчик приложения не могли быть убиты" >> /tmp/и itmspTypeLoader.журнал
    интернет
    Эхо "$(дата): выход" >> /tmp/и itmspTypeLoader.журнал
    

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

  3. Создать каталог/usr/местные/Бен/itmspTypeLoaderLauncher с таким содержанием:

    #!/бин/Баш
    
    # $1 возвращает короткое имя пользователя, вошедшего в
    СУ - $1-с /usr/местные/Бен/itmspTypeLoader &
    
  4. Установить оба скрипта исполняемым:

    $ судо команду chmod а+x /usr/местные/Бен/itmspTypeLoader /usr/местные/Бен/itmspTypeLoaderLauncher 
    
  5. Установить /usr/местные/Бен/itmspTypeLoaderLauncher как войти крючок:

    $ судо по умолчанию запись com.яблоко.loginwindow LoginHook /usr/местные/Бен/itmspTypeLoaderLauncher
    
  6. Перезагрузка, чтобы изменения вступили в силу. После входа в систему вы должны увидеть это:

    enter image description here

    и lsregister -дамп должен показать, что itmspOpener.приложениес UTExportedTypeDeclarations берет верх над приложением лоадер.приложениес:

    $ lsregister -дамп | меньше
    идентификатор пакета: 24748
     путь: /пользователи/Жауме/рабочий стол/itmspOpener.приложение/
     название: itmspOpener
    (...)
     флаги: яблоко-внутренний относительный-значок-UI путь-элемент-мин-Сыс-версия-на-арки привет-РЭС-способный пользователь-может-изменить-привет-РЭС-режим 
     пункт флагов: контейнер пакет приложения расширение-скрытые родной-приложения сервисы сценарные архитектуру x86_64 
    (...)
    --------------------------------------------------------
     тип ID: 33796
     ути: ком.яблоко.программа iTunes-производителя.itmsp по
     описание: папка itmsp по 
     флаги: экспортируемая активная яблока-внутренняя доверять 
     значок: содержание/ресурсы/папки.icns по
     отвечает: kuttypedirectory
     теги: .itmsp по
    --------------------------------------------------------
    (...)
    идентификатор пакета: 24600
     путь: /применения/Xcode.приложение/содержание/приложения/загрузчик приложения.приложение/
     название: загрузчик приложение 
    (...)
     флаги: яблоко-внутренний относительный-значок-пути привет-РЭС-способный пользователь-может-изменить-привет-РЭС-режим 
     пункт флагов: контейнер пакет приложения расширение-скрытые родной-приложение для i386 x86_64 с 
    (...)
    --------------------------------------------------------
     тип ID: 33832
     ути: ком.яблоко.программа iTunes-производителя.itmsp по
     описание: пакет для iTunes 
     флаги: экспортировать не активен яблока-внутренняя доверять 
     значок: содержание/ресурсы/itmsp по.icns по
     отвечает: ком.яблоко.пакет, общественности.композит-содержание
     теги: .itmsp по
    --------------------------------------------------------
    

    Вы видите неактивный флаг установлен в приложение загрузчик.тип экспорта приложения? Мы победили загрузчик приложения.

Испытание на прочность: .папки itmsp по-прежнему отображается после обновления в iTunes

Недавно я обновил в Xcode:

enter image description here

и могу подтвердить, что .папки itmsp ПО были показаны как папки при обновлении:

enter image description here

и потом:

enter image description here

Частичное решение: пакет будет показывать содержимое при двойном щелчке

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

Однако, если вы просто хотите, чтобы быть в состоянии дважды щелкните пакет, чтобы открыть его, есть способ сделать это с баш скрипт и автоматизатора:

  • Скрипт создает скрытые временные папки в пакет, открывает его в окне Finder (при этом раскрыв пакет в виде папки), а затем удаляет временную папку.

    Примечание:

    Скрипт может создавать скрытый, временный файл. Однако, я предпочитаю, чтобы создать папку, потому что команда rmdirтолько удаляет пустые папки, а РМ удаляет любой файл, так что если, по некоторым причина. сценарий wreaks хаос, будут удалены только пустые папки, что, вероятно, не так плохо, как если бы файлы были удалены.

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

Эти шаги, чтобы создать такое приложение. Я буду использовать .itmsp файлы как пример типа пакет в объяснение ниже:

  1. Откройте Automator в папку приложения и выберите Приложения:

    enter image description here

  2. Выбрать коммунальные услуги в библиотеке списке, выберите Запустить shell-скрипт и перетаскиваем его на панель справа:

    enter image description here

  3. Установить пропуск ввода в качестве аргументов:

    enter image description here

  4. Заменить содержимое скрипта по умолчанию с этим:

    для F В "$@"; сделать
     # Если дело не с каталога, выход
     если [ ! -Д "$Ф" ]; затем выйти; интернет
     # Создаем временную папку внутри файла itmsp""
    никакое сжатие="$Ф/.itmspOpener$$"
     если команды mkdir $никакое сжатие; затем
     # Показать в Finder
     открыть -р $никакое сжатие
     Временный файл # удалить 
     команда rmdir $никакое сжатие
    интернет
    сделано
    
  5. Сохраните программу в качестве itmspOpener:

    enter image description here

  6. Рядом Автоматизаторов.

Теперь у вас есть приложение, которое сможет открыть .itmsp файлы как папки, если связанные с ним.

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

enter image description here

Давайте исправим это тоже:

  1. Убедитесь, что кинотеатр закрыт.

  2. Выберите itmspOpener и показать его содержимое:

    enter image description here

  3. Найдите Содержание>Информация.plist и откройте его в вашем любимом редакторе:

    enter image description here

  4. Замените значение этого ключа в CFBundleDocumentTypes массива:

    <ключ>CFBundleTypeName</ключ>
    <строка>itmsp по папке</строка>
    

    и добавить этот ключ:

    <ключ>CFBundleTypeIconFile</ключ>
    <строка>папка</строка>
    

    Теперь раздел выглядит так:

    enter image description here

  5. Переключения в Finder, выберите папку, нажмите я, выберите значок папки в левом верхнем углу и скопируйте его с с:

    enter image description here

  6. Откройте предварительный просмотр и выберите Файл>Новый из буфера обмена. Сохраните файл как папку.icns по:

    enter image description here

  7. Скопируйте папку.icns по данным itmspOpener/содержание/ресурсы:

    enter image description here

  8. Связать .itmsp файл для itmspOpener и нажать кнопку Изменить все...:

    enter image description here

Икона .файлы itmsp должны меняться в папку, или, по крайней мере, я так думал: к сожалению, это был не тот случай. Так что я переехал в itmspOpener приложения в другое место (я создал временную папку на моем рабочем столе, перенесли его туда и обратно на моем рабочем столе). Что обновили информацию значок в Finder:

enter image description here

Теперь двойным щелчком .файл itmsp и смотреть его открыть как папку:

enter image description here