У меня есть список путей к файлам. Эти пути могут привести к файлам на несмонтированных томах. Как я могу программно сказать ОС смонтировать том, прежде чем пытаться получить доступ к файлу?
Я знаю, что это возможно как-то, поскольку iTunes, кажется, делает это. Например, если я инициирую воспроизведение песни, расположенной на томе, подключенном к не подключенной сети, в iTunes, громкость монтируется автоматически.
Должна ли ОС автоматически монтировать том для меня, если я попытаюсь открыть файл программно по указанному пути? Или мне нужно смонтировать диск вручную, используя Disk Arbitration Framework или что-то подобное?
Что мне нужно сделать, если мне нужно использовать инфраструктуру Disk Arbitration?
Краткий ответ: не нужно связываться с «Дисковой Арбитражной средой». Менеджер Alias может справиться со всем этим за вас.
Крис Сутер был уже довольно близко. Существует два решения с точки зрения API:
Псевдонимы. Они уже существовали в MacOS до OSX и представляют собой структурированные файлы, которые содержат несколько способов найти файл или папку, даже если они были перемещены или переименованы. Они также содержат информацию о том, на котором они находились, включая информацию о подключении, если он находится в сетевых томах. Вы можете увидеть их в действии, если просто создадите псевдоним файла (используя команду Finder «Создать псевдоним» в меню «Файл»), затем переименуете или переместите его, или размонтируйте его том. Finder попытается вернуть объем, даже попросит вас предоставить информацию для входа в систему, если это необходимо. Существует также API «Alias Manager», в том числе функция FSResolveAliasFileWithMountFlags, которая именно то, что вы просили: она позволяет вам не только найти цель псевдонима, но и выбрать, будет ли диск доступен, если он отключен, и если Пользователь должен попросить войти в систему, если это необходимо.
CFURL закладки. Это современная замена Alias API и существует только с OSX 10.6. Закладки CFURL лучше управляются системой во время выполнения. Я не знаю, есть ли у них такое же представление файлов на диске, как у классических файлов Alias, но, возможно, они даже такие же.
В любом случае, я надеюсь, что это все те указатели, которые вам нужны.
Вы пытались использовать псевдонимы? Я думаю, что они теперь известны как закладки. Возможно, они будут вызывать монтирование томов при их разрешении.