如何使用Xamarin IOS获得免费的内部存储空间

时间:2018-09-27 04:16:50

标签: ios xamarin xamarin.forms xamarin.ios xamarin-studio

我可以使用(NSProcessInfo.ProcessInfo.PhysicalMemory)获取RAM详细信息。但是我想使用Xamarin IOS获得免费的内部设备存储。

2 个答案:

答案 0 :(得分:1)

获取内部可用空间的方法是这样的:

  NSFileManager.DefaultManager.GetFileSystemAttributes (Environment.GetFolderPath (Environment.SpecialFolder.Personal)).FreeSize;

如果您使用的是Xamarin.Forms,则可以创建一个自定义界面

namespace Your.Namespace.Interfaces
{
    public interface IStorageInterface
    {
        double GetFreeSpace(); //Not sure about the return type, try long, or double

    }
}

在您的iOS项目中:

[assembly: Xamarin.Forms.Dependency(typeof(Your.Namespace.iOS.StorageRenderer))]
namespace Your.Namespace.iOS
{
    public class StorageRenderer : IStorageInterface
    {
        public double GetFreeSpace()
        {
            return NSFileManager.DefaultManager.GetFileSystemAttributes (Environment.GetFolderPath (Environment.SpecialFolder.Personal)).FreeSize;
        }

    }
}

答案 1 :(得分:0)

我已将您的代码转换为Xamarin.iOS,如下所示:

private ulong GetFreeDiskspace()
    {
        ulong totalSpace = 0;
        ulong totalFreeSpace = 0;
        NSError error = null;
        string[] paths = NSSearchPath.GetDirectories(NSSearchPathDirectory.UserDirectory, NSSearchPathDomain.All);
        var defManager = NSFileManager.DefaultManager;
        var dicAttributes = defManager.
            GetFileSystemAttributes(paths.First()
            , out error);
        totalSpace = dicAttributes.Size;
        totalFreeSpace = dicAttributes.FreeSize;
        return totalFreeSpace;
    } 

祝你好运!

在查询恢复的情况下!