Win8 获取硬盘剩余空间

保存文件的时候,经常需要判断一下是否磁盘空间不足。

在Metro下有个API

[DllImport("kernel32.dll", SetLastError = true)]         public static extern bool GetDiskFreeSpaceEx(             string lpDirectoryName,             out ulong lpFreeBytesAvailable,             out ulong lpTotalNumberOfBytes,             out ulong lpTotalNumberOfFreeBytes);

MSDN说这个可以在App中用,但实际上,由于Metro环境的局限性,不能访问大多数文件系统,所以这个函数尽可以基于 Path="." 或者 应用安装位置来获得所在盘的空间大小。

还好找到另外一个方法。IStorageItem可以传StorageFile或者StorageFolder

public static async Task<ulong> GetFreeSpace(IStorageItem sf) {             var properties = await sf.GetBasicPropertiesAsync();             var filteredProperties = await properties.RetrievePropertiesAsync(new[] {"System.FreeSpace"});             var freeSpace = filteredProperties["System.FreeSpace"];             return (ulong) freeSpace; }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-10-11,如有侵权请联系 cloudcommunity@tencent 删除staticsystemvar函数文件系统