Программно смонтировать диск / том, используя только указанный путь к файлу в Mac OS X

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

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

Должна ли ОС автоматически монтировать том для меня, если я попытаюсь открыть файл программно по указанному пути? Или мне нужно смонтировать диск вручную, используя Disk Arbitration Framework или что-то подобное?

Что мне нужно сделать, если мне нужно использовать инфраструктуру Disk Arbitration?

2 ответа

Решение

Краткий ответ: не нужно связываться с "Дисковой Арбитражной средой". Менеджер Alias ​​может обработать все это для вас.

Крис Сутер был уже довольно близко. Существует два решения с точки зрения API:

  1. Псевдонимы. Они уже существовали в Mac OS до OSX и представляют собой структурированные файлы, которые содержат несколько способов найти файл или папку, даже если они были перемещены или переименованы. Они также содержат информацию о томе, на котором они находились, включая информацию о подключении, если он находится в сетевых томах. Вы можете увидеть их в действии, если просто создадите псевдоним файла (используя команду Finder "Создать псевдоним" в меню "Файл"), затем переименуете или переместите его, или размонтируйте его том. Средство поиска попытается вернуть объем, даже попросит вас предоставить информацию для входа в систему, если это необходимо. Существует также API-интерфейс "Alias ​​Manager", в том числе функция FSResolveAliasFileWithMountFlags, которая именно то, что вы просили: она позволяет вам не только найти цель псевдонима, но и выбрать, будет ли диск доступен, если он отключен, и если Пользователь должен попросить войти в систему, если это необходимо.

  2. CFURL Закладки. Это современная замена Alias ​​API и существует только с OSX 10.6. Закладки CFURL лучше управляются системой во время выполнения. Я не знаю, есть ли у них такое же представление файлов на диске, как у классических файлов Alias, но, возможно, они даже такие же.

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

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

Другие вопросы по тегам