Uwp 如何在设置中检查用户是否授予文件系统权限?

Uwp 如何在设置中检查用户是否授予文件系统权限?,uwp,Uwp,我的应用程序确实需要文件系统权限(broadFileSystemAccess),但不幸的是,用户可以在Windows设置>隐私>文件系统中关闭此设置。有没有一种好方法可以在运行时检查设置是否打开以提醒用户?探测代码 try { auto file = co_await winrt::Windows::Storage::StorageFile::GetFileFromPathAsync(L"C:\\Windows\\regedit.exe"); } catch (w

我的应用程序确实需要文件系统权限(
broadFileSystemAccess
),但不幸的是,用户可以在Windows设置>隐私>文件系统中关闭此设置。有没有一种好方法可以在运行时检查设置是否打开以提醒用户?探测代码

    try {
        auto file = co_await winrt::Windows::Storage::StorageFile::GetFileFromPathAsync(L"C:\\Windows\\regedit.exe");
    } catch (winrt::hresult_error const& e) {
         // Show message dialog
    }

对我来说似乎不太好,因为用户可能会在不同的驱动器上安装Windows。

目前没有明确的API来检测文件系统是否打开,您只能在获取文件时进行检查


但是,您可以在检查过程中做出判断。如果使用try-catch语句捕获类型为
UnauthorizedAccessException
的错误,则文件系统未打开。经过测试,即使在访问不存在的文件时,也会优先处理未经授权的错误。

我想提醒用户,他们可能需要检查设置。检查每个
catch
的问题是,我必须显示一个对话框,或者用单独的方法拆分处理代码(检查后继续),或者复制它。您可以选择封装整个处理流程(检测文件->弹出消息对话框),或者,您可以在加载
主页
后执行检查。如果未授权,请要求用户授权并在应用程序中使用变量来记住检查状态。将来需要使用相关函数时,无需重复检查文件。您只需检查此变量的状态。谢谢您的建议。我会同意的。