快速入門:判斷 Microsoft OneDrive 檔案的可用性 (HTML)
[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]
使用 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 |
下列步驟說明如何判斷檔案目前是否可用。
- 定義適當的媒體櫃存取功能。根據列舉的媒體櫃,您需要定義功能以存取該媒體櫃。若要深入了解此功能,以及定義適用於 Microsoft Visual Studio 專案的其他檔案層級功能,請參閱 Windows 市集應用程式中的檔案存取和權限。
- 取得 StorageFolder 物件,該物件代表含有要列舉檔案的資料夾。執行的方式是參照其中一個 Windows.Storage.KnownFolders 靜態屬性,如 Windows.Storage.KnownFolders.picturesLibrary。
- 呼叫 StorageFolder.getFilesAsync 方法,抓取相關聯資料夾中的所有檔案。
- 逐一查看傳回的檔案集合,參照每個 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 檔案是否可供使用。