Xamarin Forms FileSystemWatcher

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.

我怎样才能让它起作用?

还有另一种查看文件夹的方法吗?

谢谢!

FileSystemWatcher 是基于 .NET Framework 的 class,目前 未在 Xamarin 中实现,尽管 API 在 Xamarin 中可用.NET 标准 2.0.

UWP 中,您可以创建一个 StorageFolderQueryContentChanged 事件处理程序来观察给定文件夹中的变化。请参阅文档 here

Android 有自己的替代实现,形式为 Android.OS.FileObserver.

iOS 似乎没有开箱即用的东西,所以这可能需要您找到一个可以为您完成这项工作的图书馆,或者自己实现此类功能,尽管其效率低于 SDK 内置的方式。