#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. Этим приложениям не нужно хранить его в файле. Они могут поддерживать отдельную индексную структуру / базу данных в данных приложения, к которым у вас может быть или не быть доступа как к третьей стороне.