Создайте файл в формате AppleDouble в Linux

Я работаю над приложением, которое синхронизирует данные. Для Mac OS файлы загружаются, и если они содержат информацию о вилке ресурсов, вилка считывается и сохраняется в виде строки с использованием: file/..namedfork/rsrc

Пользователи могут получить доступ к своим файлам с помощью веб-приложения (Java), которое работает на сервере Linux. Есть ли способ создать действительный файл формата AppleDouble, используя только вилку данных и строку, которую я прочитал из namedfork? Я не против потерять метаданные Finder.

Примечание. Сгенерированный файл будет загружен (с помощью веб-приложения) как один файл для пользователей Mac OS.

Это возможно?

С уважением


person Community    schedule 04.05.2009    source источник


Ответы (2)


Насколько мне известно, OS 9/OS X может иметь исходный доступ только к разветвлениям ресурсов для файлов, обслуживаемых общими ресурсами AppleTalk. Для других носителей, например. SMB (Microsoft Networking) или HTTP, единственный способ сохранить вилку ресурса — поместить файл в архив.

Существует несколько форматов архивов для Mac, которые поддерживают это, например, StuffIt и HQX. Я очень сомневаюсь, что бинарные файлы Linux для StuffIt позволят упаковать форк ресурсов из отдельного файла, но, по крайней мере, вам есть что оценить.

Глядя на запись AppleDouble в Википедии, кажется, что можно создать такой файл из компьютер, не принадлежащий Apple, с помощью инструмента с открытым исходным кодом и отправки результирующего файла с использованием типа multipart/appledouble MIME. Возможно, вы могли бы вызвать этот двоичный файл из своего кода Java?

person dmw    schedule 07.10.2009

В статье в Википедии говорится:

AppleSingle объединил оба разветвления файлов и связанную с ними метафайловую информацию Finder в один файл, тогда как AppleDouble сохранил их как два отдельных файла.

В статье базы знаний Apple говорится:

Второй новый файл имеет имя исходного файла с префиксом «._» и содержит ветку ресурсов исходного файла.

Поэтому я предполагаю, что вам просто нужно сохранить содержимое строки ветки ресурсов в файл с соответствующим именем.

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

Создайте файл в формате AppleDouble в Linux

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

person lothar    schedule 04.05.2009
comment
Здравствуйте, форки ресурсов являются частью файловой системы HFS на Mac, и только когда эти файлы перемещаются за пределы HFS+, они разделяются на file.txt и ._file.txt. На Mac они оба существуют под одним и тем же именем файла .txt. Другая проблема заключается в том, что я хочу, чтобы пользователи могли загружать файл из Интернета как один файл. Вы можете проверить спецификацию appledouble здесь: users.phg-online.de/tk/netatalk/doc/Apple/v2/AppleSingle_AppleDouble.pdf - person ; 04.05.2009
comment
Ты потерял меня. В своем вопросе вы заявили, что в своем приложении вы уже извлекли ресурс в строку. В этом случае вам будет легко создать формат AppleDouble в Linux, так как вам нужно только хранить данные ресурса в виде файла с префиксом ._. - person lothar; 04.05.2009
comment
Да, у меня есть ресурс. Я хочу сказать, что, хотя я создаю AppleDouble в Linux, я хочу, чтобы пользователь (который использует Mac) мог загрузить один единственный файл, который уже имеет вилку ресурсов, как они обычно видят в приложении Finder. - person ; 04.05.2009
comment
Ну, тогда вы должны были задать это как свой вопрос, потому что вопрос, который вы задали, отличается. Вы можете либо перефразировать свой вопрос, либо задать другой. - person lothar; 05.05.2009
comment
Я бы не сказал, что мой вопрос отличается, я хочу создать файл AppleDouble в Linux, и я упомянул, что пользователи будут получать доступ к своему файлу с помощью веб-приложения. Может быть, я не совсем правильно объяснил, я добавлю дополнительное примечание в конце моего вопроса. Спасибо, в любом случае - person ; 05.05.2009