Windows Mobile获取存储卡容量及使用情况-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

Windows Mobile获取存储卡容量及使用情况

简介:

在做Windows Mobile开发的时候,为了节省空间,很多文件要放到存储卡上,因而对存储卡空间及容量的管理就极为重要。我们可以通过封装GetDiskFreeSpaceEx API来完成该功能,具体C#代码如下。

public static DiskFreeSpace GetDiskFreeSpace(string directoryName)
{
DiskFreeSpace result = new DiskFreeSpace();

if (!GetDiskFreeSpaceEx(directoryName, ref result.FreeBytesAvailable, ref result.TotalBytes, ref result.TotalFreeBytes))
{
throw new Win32Exception(Marshal.GetLastWin32Error(), "Error retrieving free disk space");
}
return result;
}

public struct DiskFreeSpace
{
public long FreeBytesAvailable;

public long TotalBytes;

public long TotalFreeBytes;
}

[DllImport("coredll")]
private static extern bool GetDiskFreeSpaceEx(string directoryName,
ref long freeBytesAvailable,
ref long totalBytes,
ref long totalFreeBytes);

下面代码用来测试,本人在Windows Mobile5.0 及Windows Mobile6.0的Pocket PC上测试通过。

private void button1_Click(object sender, EventArgs e)
{
try
{
Cursor.Current = Cursors.WaitCursor;
DiskFreeSpace dis = GetDiskFreeSpace("Storage Card");
MessageBox.Show("总空间:"+dis.TotalBytes.ToString()+"/r/n剩余空间:"+dis.TotalFreeBytes.ToString()+"/r/n");
}
catch (Exception ep)
{
MessageBox.Show(ep.Message);
}
finally
{
Cursor.Current = Cursors.Default;
}
}

 





     本文转自xyz_lmn51CTO博客,原文链接:http://blog.51cto.com/xyzlmn/819934,如需转载请自行联系原作者



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章