Наше программное обеспечение на заказ имеет проблемы с тем, как Microsoft OneDrive блокирует и синхронизирует используемые файлы. В связи с этим мы решили не поддерживать файлы сохранения в облаке. Идея состоит в том, что когда пользователь указывает на загрузку или сохранение в месте, которое синхронизируется с облаком, всплывающее окно сообщит ему, что оно не поддерживается.
Моя проблема заключается в идентификации указанного местоположения. Хотя самым простым способом было бы искать имя папки «OneDrive», я чувствую, что это не надежно, поскольку имя папки можно изменить.
Я думал о проверке, имеет ли файл «статус доступности»поскольку в проводнике это отображается, если файл находится в облаке, локально или с синхронизацией. К сожалению, я не смог найти никакого способа проверить это состояние, кроме как визуально, так как не смог вручную найти ссылки на эту функцию в реестре, командной строке или даже в журнале событий.
Пример изображения:
Существует ли команда или метод для определения этого состояния файла или папки, например, с помощью команды attrib
? В качестве последнего средства, возможно, Powershell может решить мою проблему?
РЕДАКТИРОВАТЬ:
Герхард Барнард решение сработало для меня. Вот изображение.
(Спасибо редакторам за то, что превратили эти ссылки в картинки, пока я набираю достаточно очков, чтобы ТА доверял мне)
https://i.imgur.com/VSGvSKD.jpg
https://i.imgur.com/P5reVIC.jpg
Это также доступно с использованием attrib
.
https://imgur.com/Yejeb4r
Как упоминалось в aschipfl , эти функции могут отсутствовать в вашей системе по неизвестным причинам, поскольку документация Microsoft кажется устаревшей, однако тестирование продолжается.
EDIT2:
Я считаю, что для того, чтобы эти функции были доступны, у вас должен быть установлен OneDrive. Обычно он запускается из C: \ Users [имя пользователя] \ AppData \ Local \ Microsoft \ OneDrive \ OneDrive.exe. Я обдумываю просто поиск этого файла вместо проверки содержимого папки перед сохранением и запросом моих пользователей.