【问题标题】:Get total size of LocalFolder Windows Phone 8.1获取 LocalFolder Windows Phone 8.1 的总大小
【发布时间】:2015-11-12 15:07:06
【问题描述】:
在我的应用程序中,我使用的是 LocalStorage。我已将照片保存到本地文件夹。我想要本地文件夹的总已用内存大小。
BasicProperties BP = await ApplicationData.Current.LocalFolder.GetBasicPropertiesAsync();
var size = BP.Size;
Debug.WriteLine("size = {0}", size);
我正在使用此代码,但每次我得到 p>
大小 = 0
我已经查看了这个Answer,但我认为它不是获取本地文件夹总大小的正确方法,我不想使用 for 循环,因为我的本地文件夹中有数百个文件。
【问题讨论】:
标签:
c#
windows-phone-8.1
local-storage
winrt-xaml
【解决方案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;
}