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.