macOS проверяет, доступен ли файл в автономном режиме (gdrive, dropbox, one drive, nexcloud)

#objective-c #cloud #nsfilemanager #objective-c #gdrive

#objective-c #облако #nsfilemanager #objective-c #gdrive

Вопрос:

При переборе файлов я должен проверить, доступен ли файл в автономном режиме, если диск virtual drive , например. При работе с функцией «потоковые файлы» GDrive файлы в finder считаются либо «доступными в автономном режиме», либо «только онлайн». Та же функция существует для других поставщиков облачных хранилищ, таких как OneDrive, nextcloud и dropbox. Для моего приложения проверка состояния перед доступом к файлу очень важна, чтобы не вызвать непреднамеренную загрузку файлов через драйвер виртуального диска.

В Windows все просто, проверяя FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS FILE_ATTRIBUTE_RECALL_ON_OPEN атрибуты файла и .

На Mac я не могу найти эквивалент, кроме iCloud. Я проверяю все виды атрибутов через NSFileManager attributesOfItemAtPath словарь, а также значения ресурсов NSURL

В OneDrive, похоже, достаточно просто проверить, равно ли NSURLFileAllocatedSizeKey нулю. Однако GDrive, похоже, кэширует данные в каком-то месте и всегда сообщает NSURLFileAllocatedSizeKey , что он равен нулю, даже если файл доступен в автономном режиме.

Очевидно, что должен быть тег / флаг / атрибут для запроса из файловой системы, верно?

Комментарии:

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