Как получить бесплатное внутреннее хранилище с помощью Xamarin IOS - PullRequest
0 голосов
/ 27 сентября 2018

Я могу получить детали оперативной памяти, используя (NSProcessInfo.ProcessInfo.PhysicalMemory).Но я хочу получить бесплатное внутреннее хранилище на устройстве с помощью Xamarin IOS.

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Я преобразовал ваш код в 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;
    } 

Удачи!

В случае возврата запросов!

0 голосов
/ 27 сентября 2018

Метод получения внутреннего свободного пространства следующий:

  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;
        }

    }
}
...