C# CreateFileAsync创建被阻止的文件

C# CreateFileAsync创建被阻止的文件,c#,uwp,windows-10-universal,storagefile,C#,Uwp,Windows 10 Universal,Storagefile,我正在开发一个UWP应用程序,它需要在本地存储之外创建一个文件。我使用文件夹选择器让用户选择输出控制器,然后使用LocalSettings存储该选择,并将文件夹添加到FutureAccessList 然后,我使用创建成功的文件,没有错误或异常 问题是,文件是通过阻塞创建的,您可以在“文件属性”对话框中看到: 是否有一种不使用此选项创建文件的特定方法,或者有一种使用C取消阻止的方法 我想在这里分享我的一些发现: 是的,当我用图像测试时,我可以复制这个。我认为其他文件可能会有同样的结果 根据以下SO

我正在开发一个UWP应用程序,它需要在本地存储之外创建一个文件。我使用文件夹选择器让用户选择输出控制器,然后使用LocalSettings存储该选择,并将文件夹添加到FutureAccessList

然后,我使用创建成功的文件,没有错误或异常

问题是,文件是通过阻塞创建的,您可以在“文件属性”对话框中看到:


是否有一种不使用此选项创建文件的特定方法,或者有一种使用C取消阻止的方法

我想在这里分享我的一些发现:

是的,当我用图像测试时,我可以复制这个。我认为其他文件可能会有同样的结果 根据以下SO线程:并且,如果您从UWP应用程序中检查该属性,则该属性将写入其中,这是一个扩展属性。有关属性列表,您可以参考 我使用代码进行测试以获得以下结果:

我总是得到空值。据我所知,这可能与许可有关

最后,我认为如果您需要修改这个特性,您可能需要考虑使用DekTopBaseTe相关技术来使用。这样,您就可以运行win32进程来修改文件的属性


是否确实使用了文件格式的正确扩展名?是。对于测试,它只是一个.txt文件。而且,文件确实打开了。我也看到了这两个线程,但我相信解决方案不适用于UWP。将UWP链接到Win32应用程序的唯一方法是侧向加载UWP,这不是我想要的方向。@Johnikar FullTrustProcesslancher是desktopbridge方式,与侧向加载不同。您可以看到这一点,区别在于您需要添加capability并填充它。对于UWP特定的解决方案,恐怕我们没有修改此属性的权限。谢谢您的更正!我来试试这条路线。你不要AppZoneIdentifier。0已解除阻止,3是web的标记,请参阅
 IDictionary<string, object> extraProperties = await file.Properties.RetrievePropertiesAsync(propertiesName);
    var propValue = extraProperties[appzoneProperty];
    if (propValue != null)
    {
        fileProperties.AppendLine("appzone property: " + propValue);
    }