Xamarin Forms FileSystemWatcher

Мне нужно смотреть папку, которая находится внутри моего приложения IOS / Android.

Я хотел бы использовать FileSystemWatcher,

Это мой код:

var DocFolder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var InboxFolder = DocFolder + "/Inbox";

 FileSystemWatcher watcher = new FileSystemWatcher() {
     Path = InboxFolder,
     NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName,
     Filter = "*.*",
     EnableRaisingEvents = true
 };

watcher.Created += (object sender, FileSystemEventArgs e) => {
    // do stuff
};

Когда FileSystemWatcher инициализируется эта ошибка

System.NotImplementedException: The method or operation is not implemented.

Как я могу сделать это работает?

Есть еще один способ посмотреть папку?

Спасибо!

1 ответ

Решение

FileSystemWatcher является классом на основе.NET Framework, который в настоящее время не реализован в Xamarin, хотя API доступен в.NET Standard 2.0.

В UWP вы можете создать StorageFolderQuery с ContentChanged обработчик событий для наблюдения за изменениями в данной папке. Смотрите документацию здесь.

Android имеет собственную альтернативную реализацию в виде Android.OS.FileObserver,

В iOS, похоже, нет ничего нестандартного, поэтому для этого, вероятно, потребуется либо найти библиотеку, которая выполняет эту работу за вас, либо реализовать такую ​​функциональность самостоятельно, хотя и менее эффективно, чем если бы она была встроена в SDK.

Другие вопросы по тегам