Поделиться через


Xamarin.Essentials: вспомогательные службы файловой системы

Класс FileSystem содержит ряд вспомогательных функций для поиска кэша приложения, каталогов данных и открытых файлов в пакете приложения.

Начало работы

Чтобы начать использовать этот API, ознакомьтесь с руководством по началу работы с Xamarin.Essentials, чтобы правильно настроить и установить библиотеку в проектах.

Использование вспомогательных функций FileSystem

Добавьте ссылку на Xamarin.Essentials в своем классе:

using Xamarin.Essentials;

Чтобы получить каталог приложения для хранения кэшированных данных. Данные кэша можно использовать для любых данных, которые должны сохраняться дольше, чем временные, но не требуются для правильной работы, так как ОС определяет, когда это хранилище очищается.

var cacheDir = FileSystem.CacheDirectory;

Чтобы получить каталог верхнего уровня приложения для любых файлов, которые не являются файлами пользовательских данных. Эти файлы архивируются на платформе синхронизации операционной системы. Особенности реализации для платформ см. ниже.

var mainDir = FileSystem.AppDataDirectory;

Если вы хотите открыть файл, упакованный в пакет приложения, можно использовать метод OpenAppPackageFileAsync для чтения содержимого. В примере ниже файл с именем mybundledfile.txt добавлен на каждую платформу. Дополнительные сведения см. в разделе "Особенности реализации платформы".

 var fileName = "mybundledfile.txt";
 using (var stream = await FileSystem.OpenAppPackageFileAsync(fileName))
 {
    using (var reader = new StreamReader(stream))
    {
        var fileContents = await reader.ReadToEndAsync();
    }
 }

Особенности реализации для платформ

  • CacheDirectory — возвращает CacheDir текущего контекста.
  • AppDataDirectory — возвращает FilesDir текущего контекста и выполняет резервное копирование с использованием автоматической архивации, начиная с API версии 23 и более поздней.

Добавьте любой файл в папку Assets проекта Android и пометьте действие сборки как AndroidAsset, чтобы использовать его с OpenAppPackageFileAsync.

API

Другие видео о Xamarin см. на Channel 9 и YouTube.