Краткое руководство: получение свойств файла (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]

Получение свойств файла, представленного объектом StorageFile.

Необходимые условия

Многие методы, используемые для взаимодействия с папками и файлами, являются асинхронными. Узнать о том, как создавать асинхронные приложения, можно из раздела Асинхронное программирование на JavaScript (приложения Магазина Windows).

Получение свойств файла верхнего уровня

Доступ ко многим свойствам файла верхнего уровня можно получить как к членам класса 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, который определяет свойства размера элемента (файл или папка) и дату его последнего изменения.

Следующий код перечисляет все файлы библиотеки изображений, предоставляя доступ к свойствам верхнего уровня и к базовым свойствам каждого из файлов. Обратите внимание, что код использует объекты Promise JavaScript и метод 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.