在我的UWP应用程序中,我使用此构造获取所有StorageDevices的列表:
List<StorageFolder> list = new List<StorageFolder>();
var selector = Windows.Devices.Portable.StorageDevice.GetDeviceSelector();
var devices = await Windows.Devices.Enumeration.DeviceInformation.FindAllAsync(selector);
foreach (Windows.Devices.Enumeration.DeviceInformation device in devices)
{
// Get device root folder
StorageFolder rootFolder = Windows.Devices.Portable.StorageDevice.FromId(device.Id);
list.Add(rootFolder);
}
RemovableItems.DataContext = new RemovableStorageViewModel(list);
如何获得此设备的自由空间和容量?
我试图从文件夹道具rootFolder.Properties.RetrievePropertiesAsync(new List<string>())
中获取它,但是缺少这个道具。
更新
为什么缺少自由空间和容量?
答案 0 :(得分:0)
您是否尝试查询System.FreeSpace
和System.Capacity
属性(有关可用属性https://msdn.microsoft.com/en-us/library/windows/desktop/bb760719%28v=vs.85%29.aspx的更多信息)
用法:
var retrivedProperties = await rootFolder.Properties.RetrievePropertiesAsync(new string[] { "System.FreeSpace" });
var freeSpace = (UInt64)retrivedProperties["System.FreeSpace"];
答案 1 :(得分:0)
我没有成功地做同样的事情。 Microsoft出于某种原因省略了这些属性。希望下一个SDK更新能解决这个问题。
答案 2 :(得分:0)
使用thang2410199的答案,我能够从Windows 10版本1803(10.0:内部版本17134)开始为某些驱动器检索“ System.FreeSpace”和“ System.Capacity”属性。
您可以在我对以下问题的回答中看到一个代码示例:Error while accessing AvailableFreeSpace/TotalSize in DriveInfo in UWP