2015-11-12 5 views
0

В моем приложении я использую LocalStorage. Я сохранил фотографии в localfolder. Я хочу, чтобы общий размер используемой памяти в локальной папке.Получить общий размер LocalFolder Windows Phone 8.1

BasicProperties BP = await ApplicationData.Current.LocalFolder.GetBasicPropertiesAsync(); 
var size = BP.Size; 
Debug.WriteLine("size = {0}", size); 

Я использую этот код, но каждый раз, когда я получаю

размер = 0

Я смотрел на эту Answer, но я не думаю, что его надлежащим образом, чтобы получить общий общий размер локальной папки я не хочу использовать для цикла, потому что в моей локальной папке будет сотни файлов.

ответ

1

Вы должны ходить по папкам, чтобы рассчитать размер файлов внутри

public async System.Threading.Tasks.Task<long> GetFolderSize(Windows.Storage.StorageFolder folder) 
{ 
    long size = 0; 
    // For files 
    foreach (Windows.Storage.StorageFile thisFile in await folder.GetFilesAsync()) 
    { 
     Windows.Storage.FileProperties.BasicProperties props = await thisFile.GetBasicPropertiesAsync(); 
     size += props.Size; 
    } 
    // For folders 
    foreach (Windows.Storage.StorageFolder thisFolder in await folder.GetFoldersAsync()) 
    { 
     size += await GetFolderSize(thisFolder); 
    } 
    return size; 
} 
+0

так, что нет никакого другого способа вычислить прямой размер папки ?? –

+0

Нет, размер папки - это сумма размеров файлов внутри нее, просто –

Смежные вопросы