Краткое руководство: определение доступности файлов 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 |
Далее описан порядок действий при определении того, является ли файл доступным в настоящий момент.
- Определите возможности доступа к соответствующей библиотеке. В зависимости от перечисляемой библиотеки необходимо определить возможность доступа к ней. Подробнее об этом и об определении других возможностей на уровне файлов в проектах Microsoft Visual Studio: Доступ к файлам и разрешения в приложениях Магазина Windows.
- Присоедините объект StorageFolder, представляющий папку, файлы которой будут перечисляться. Для этого создайте ссылку на одно из статических свойств Windows.Storage.KnownFolders, например Windows.Storage.KnownFolders.picturesLibrary.
- Вызовите метод StorageFolder.getFilesAsync для получения всех файлов в привязанной папке.
- Выполните обход возвращенной коллекции файлов, ссылаясь на свойство 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.