快速入门:确定 Microsoft OneDrive 文件的可用性 (HTML)

[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]

使用 StorageFile.isAvailable 属性确定 OneDrive 文件是否可用。

先决条件

很多用来与文件夹和文件交互的方法都是异步方法。若要了解如何编写异步应用,请参阅使用 JavaScript 异步编程

使用 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. 循环访问返回的文件集,为每个 StorageFile 对象引用 isAvailable 属性。

以下方法可枚举“图片库”并显示名称、提供程序名称以及每个文件的可用性。

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 文件是否可用。