none
请教怎么样获取存储卡的总空间和可用空间. RRS feed

  • 问题

  • 请教怎么样获取存储卡的总空间和可用空间.?
    我用了GetDiskFreeSpaceEx,不过不敢确定,有没有专家能确认一下? 谢谢.
    2009年10月29日 7:31

答案

  • 你好。
    可以参考codeproject上的文章:
    http://www.codeproject.com/KB/mobile/DeviceMemoryInfo.aspx
    里面有说明。
    施炯
    2009年10月30日 5:27
    版主
  • 对MVP的回答补充一点,可以用GetDiskFreeSpaceEx方法来得到存储卡的空间和可用空间。我们要先判断是否是存储卡,首先枚举主目录下的所有目录,如果此目录的属性是临时目录,则可以判断为存储卡,代码如下:

    void GetStorageCardSpace

          DirectoryInfo rootFolder = new DirectoryInfo(@"\");
          DirectoryInfo[] directoryList = rootFolder .GetDirectories();
          ulong FreeBytesAvailable;
          ulong TotalCapacity;
          ulong TotalFreeBytes;  

    for (int i = 0; i < directoryList.Length; ++i)
          {
            if ((directoryList[i].Attributes & FileAttributes.Temporary) != 0)
            {  
              GetDiskFreeSpaceEx(directoryList[i].FullName,
    out FreeBytesAvailable, out TotalCapacity, out TotalFreeBytes);

          }

    }

    }




    Please remember to mark the replies as answers if they help and unmark them if they provide no help
    2009年11月3日 9:47
    版主

全部回复

  • 你好。
    可以参考codeproject上的文章:
    http://www.codeproject.com/KB/mobile/DeviceMemoryInfo.aspx
    里面有说明。
    施炯
    2009年10月30日 5:27
    版主
  • 你好。
    可以参考codeproject上的文章:
    http://www.codeproject.com/KB/mobile/DeviceMemoryInfo.aspx
    里面有说明。
    施炯

    OpenNETCF.WindowsCE Namespace 名字空间下的MemoryManagement 大概也能获取到吧
    2009年10月31日 2:29
  • 对MVP的回答补充一点,可以用GetDiskFreeSpaceEx方法来得到存储卡的空间和可用空间。我们要先判断是否是存储卡,首先枚举主目录下的所有目录,如果此目录的属性是临时目录,则可以判断为存储卡,代码如下:

    void GetStorageCardSpace

          DirectoryInfo rootFolder = new DirectoryInfo(@"\");
          DirectoryInfo[] directoryList = rootFolder .GetDirectories();
          ulong FreeBytesAvailable;
          ulong TotalCapacity;
          ulong TotalFreeBytes;  

    for (int i = 0; i < directoryList.Length; ++i)
          {
            if ((directoryList[i].Attributes & FileAttributes.Temporary) != 0)
            {  
              GetDiskFreeSpaceEx(directoryList[i].FullName,
    out FreeBytesAvailable, out TotalCapacity, out TotalFreeBytes);

          }

    }

    }




    Please remember to mark the replies as answers if they help and unmark them if they provide no help
    2009年11月3日 9:47
    版主