XAML 在UWP中隐藏创建的文件

vlf7wbxs  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(141)

使用UWP,我在Documents文件夹中创建了一个文件,创建后我试图隐藏该文件,但该文件没有被隐藏。下面是我用来隐藏的示例代码。

var localsetting = KnownFolders.DocumentsLibrary;
     var versionfile = await localsetting.CreateFileAsync("TEST.txt", CreationCollisionOption.OpenIfExists);
     await FileIO.WriteTextAsync(versionfile, "TEst Content2");
     System.IO.File.SetAttributes(versionfile.Path, System.IO.FileAttributes.Hidden);

有可能隐藏文件吗?

bxgwgixi

bxgwgixi1#

我已经测试了你的代码。问题是你不能为DocumentsLibrary中的文件设置隐藏属性,即使你已经显式地授予了文件夹的访问权限。对于uwp应用程序,可用的文件属性列在Windows.Storage.FileAttributes枚举中,你可以看到Hidden属性不包括在内。
Windows应用商店应用运行沙盒,对文件系统的访问权限非常有限。在大多数情况下,它们只能直接访问其安装文件夹和应用程序数据文件夹。对其他位置的访问只能通过代理进程进行。这是设计使然。因此,你可以隐藏在LocalFolder中创建的文件。

var Local = ApplicationData.Current.LocalFolder;
var versionfile = await localsetting.CreateFileAsync("TEST.txt", CreationCollisionOption.OpenIfExists);
await FileIO.WriteTextAsync(versionfile, "TEst Content2");
System.IO.File.SetAttributes(versionfile.Path, System.IO.FileAttributes.Hidden);

然而,我们不建议你在你的uwp应用程序中隐藏文件。因为如果你隐藏了文件,然后你用下面的代码创建了一个同名文件。它会抛出异常。

localsetting.CreateFileAsync("TEST.txt", CreationCollisionOption.OpenIfExists);

相关问题