【问题标题】:Xamarin Forms FileSystemWatcherXamarin 窗体 FileSystemWatcher
【发布时间】:2018-02-03 09:52:18
【问题描述】:

我需要查看我的 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.

我怎样才能使它工作?

还有其他方法可以查看文件夹吗?

谢谢!

【问题讨论】:

  • 您可以将Android.OS.FileObserver 用于Android。对于 iOS,您可以查看 Xamarin 文档。

标签: c# xamarin.forms filesystemwatcher notimplementedexception


【解决方案1】:

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

UWP中,您可以使用ContentChanged 事件处理程序创建StorageFolderQuery,以观察给定文件夹中的变化。请参阅文档here

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-25
    • 2019-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 2017-12-01
    • 2017-11-11
    相关资源
    最近更新 更多