クイック スタート: ファイルのプロパティの取得 (HTML)
[ この記事は、Windows ランタイム アプリを作成する Windows 8.x および Windows Phone 8.x 開発者を対象としています。Windows 10 向けの開発を行っている場合は、「最新のドキュメント」をご覧ください]
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 オブジェクトを返します。
次のコードでは、画像ライブラリ内のすべてのファイルを列挙して、各ファイルの最上位プロパティと基本プロパティの両方にアクセスします。このコードでは、2 つの非同期メソッドの呼び出し (StorageFolder.getFilesAsync と StorageFile.getBasicPropertiesAsync) を同期するために、JavaScript の promises と WinJS.Promises.join メソッドを使います。
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 オブジェクトで表される特定のファイルの最上位プロパティと基本プロパティを取得する方法について説明しました。