Xamarin 表单文件系统观察器

Hik*_*ari 4 c# filesystemwatcher notimplementedexception xamarin.forms

我需要查看 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
};
Run Code Online (Sandbox Code Playgroud)

初始化时FileSystemWatcher会触发此错误:

System.NotImplementedException: The method or operation is not implemented.
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它发挥作用?

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

谢谢你!

Mar*_*und 5

FileSystemWatcher是一个基于 .NET Framework 的类,尽管该 API 在 .NET Standard 2.0 中可用,但目前尚未在 Xamarin 中实现。

UWP中,您可以创建一个事件StorageFolderQuery处理ContentChanged程序来观察给定文件夹中的更改。请参阅此处的文档。

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

iOS似乎没有任何开箱即用的功能,因此这可能需要您找到一个可以为您完成这项工作的库,或者您自己实现此类功能,尽管与内置的相比效率较低。 SDK。