Xamarin Forms FileSystemWatcher

4

我需要监视我的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
你可以在Android中使用Android.OS.FileObserver。对于iOS,你可以查看Xamarin文档。 - DogeAmazed
1个回答

5

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

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

Android 则提供了自己的替代实现,即Android.OS.FileObserver

iOS 似乎没有预置功能可用,因此您可能需要找到一个可以为您完成此工作的库,或者自行实现此功能,尽管效率不如内置于 SDK 中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接