共用方式為


快速入門:取得檔案的屬性 (HTML)

[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]

取得由 StorageFile 物件代表的檔案的屬性。

先決條件

許多用來與資料夾和檔案互動的方法都是非同步的。您可以在 JavaScript 中的非同步程式設計了解如何撰寫非同步應用程式。

取得檔案的最上層屬性

許多最上層檔案屬性都可當成 StorageFile 類別的成員來存取。這些屬性包含資料,例如: 檔案屬性、內容類型、建立日期、顯示名稱及檔案類型等。

下列程式碼會列舉圖片庫中的所有檔案,存取每個檔案的最上層名稱和類型屬性。

var library = Windows.Storage.KnownFolders.picturesLibrary;
var outString = "";

library.getFilesAsync().then(function (files) {
    files.forEach(function (file) {
    outString += "File name: " + file.name + "\n";
    outString += "File type: " + file.fileType + "\n";
    outString += "\n"
});

取得檔案的基本屬性

許多基本檔案屬性都可藉由先呼叫 StorageFile.getBasicPropertiesAsync 方法來取得。這個方法會傳回 BasicProperties 物件,此物件會定義項目 (檔案或資料夾) 大小的屬性,以及上次修改項目的時間。

下列程式碼會列舉圖片庫中的所有檔案,存取每個檔案的最上層與基本屬性兩者。請注意,程式碼會使用 JavaScript Promises 與 WinJS.Promises.join 方法,同步化兩個非同步方法的呼叫:StorageFolder.getFilesAsyncStorageFile.getBasicPropertiesAsync


var library = Windows.Storage.KnownFolders.picturesLibrary;
var outString = "";

library.getFilesAsync().then(function (files) {
    var promises = [];
    files.forEach(function (file) {    
        promises.push(WinJS.Promise.as(file));
        promises.push(file.getBasicPropertiesAsync());
    })
    return WinJS.Promise.join(promises);
})
.done(function (results) {
    var counter = 0

    while (counter < results.length) {
        var file = results[counter];    
        var props = results[counter + 1];
        outString += "File name: " + file.name + "\n";
        outString += "File type: " + file.fileType + "\n";
        outString += "File size: " + props.size + "\n";
        outString += "\n"
        counter = counter + 2;
    }
});

摘要

在這個快速入門中,您已了解如何針對 StorageFile 物件所代表的指定檔案,取得最上層和基本屬性。