快速入門:取得檔案的屬性 (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.getFilesAsync 和 StorageFile.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 物件所代表的指定檔案,取得最上層和基本屬性。