Краткое руководство: определение доступности файлов Microsoft OneDrive (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]

Определите доступность файла OneDrive с помощью свойства StorageFile.isAvailable.

Необходимые условия

Многие методы, используемые для взаимодействия с папками и файлами, являются асинхронными. Узнать о том, как создавать асинхронные приложения, можно из раздела Асинхронное программирование на JavaScript (приложения Магазина Windows).

Использование свойства StorageFile.isAvailable

В Windows 8.1 пользователи могут отмечать файлы OneDrive как "доступные автономно" (по умолчанию) и как "только в сети". Благодаря этому пользователи могут перемещать большие файлы (например, изображения или видео) в свой OneDrive, отмечать их как "только в сети" и тем самым экономить место на диске. (На локальном диске будет храниться только небольшой файл, содержащий метаданные об удаленном файле.)

Новое свойство StorageFile.isAvailable используется для определения доступности файла в данный момент. Значения свойства StorageFile.isAvailable в различных сценариях перечислены в следующей таблице.

Тип файла В сети Сеть с лимитным тарифным планом Вне сети
Локальный файл True True True
Файл OneDrive с отметкой "доступен автономно" True True True
Файл OneDrive с отметкой "только в сети" True На основании настройки пользователя False
Сетевой файл True На основании настройки пользователя False

 

Далее описан порядок действий при определении того, является ли файл доступным в настоящий момент.

  1. Определите возможности доступа к соответствующей библиотеке. В зависимости от перечисляемой библиотеки необходимо определить возможность доступа к ней. Подробнее об этом и об определении других возможностей на уровне файлов в проектах Microsoft Visual Studio: Доступ к файлам и разрешения в приложениях Магазина Windows.
  2. Присоедините объект StorageFolder, представляющий папку, файлы которой будут перечисляться. Для этого создайте ссылку на одно из статических свойств Windows.Storage.KnownFolders, например Windows.Storage.KnownFolders.picturesLibrary.
  3. Вызовите метод StorageFolder.getFilesAsync для получения всех файлов в привязанной папке.
  4. Выполните обход возвращенной коллекции файлов, ссылаясь на свойство isAvailable для каждого объекта StorageFile.

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

function OnDisplayAvailabilityClick(mouseEvent) {
    var output = document.getElementById("Output");

    var library = Windows.Storage.KnownFolders.picturesLibrary;
    var outString = "";
    library.getFilesAsync().then(function (files) {
        files.forEach(function (file) {
            outString += file.name + " (on " + file.provider.displayName + ") is " + (file.isAvailable ? "available" : "not available") + "\n";
        });
        output.innerText = outString;
    });
}

Сводка

С помощью этого краткого руководства вы научились программно определять доступность файлов в OneDrive.