Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WinRT是否有一个存储选项,即使在卸载应用程序后也会保持不变?_C#_Vb.net_Windows Runtime_Windows Store Apps - Fatal编程技术网

C# WinRT是否有一个存储选项,即使在卸载应用程序后也会保持不变?

C# WinRT是否有一个存储选项,即使在卸载应用程序后也会保持不变?,c#,vb.net,windows-runtime,windows-store-apps,C#,Vb.net,Windows Runtime,Windows Store Apps,我正在尝试将一些文件和文件夹放在WinRT应用程序可以访问和读取文件的位置。即使在我卸载应用程序时,这些文件和文件夹也必须被锁定并永久保存。您可以从Windows应用商店应用程序访问以下4类主要文件夹: /AppData/Local/ 标准可用库(音乐、图片、视频) 需要提升权限的库(文档) 用户定义的文件夹(通过文件选择器) 通常,您会将特定于应用程序的数据存储在第一类中,并将用户的数据存储在库或用户定义的文件夹中 卸载应用程序时,其/AppData/Local下的包文件夹将被删除,因此那

我正在尝试将一些文件和文件夹放在WinRT应用程序可以访问和读取文件的位置。即使在我卸载应用程序时,这些文件和文件夹也必须被锁定并永久保存。

您可以从Windows应用商店应用程序访问以下4类主要文件夹:

  • /AppData/Local/
  • 标准可用库(音乐、图片、视频)
  • 需要提升权限的库(文档)
  • 用户定义的文件夹(通过
    文件选择器
通常,您会将特定于应用程序的数据存储在第一类中,并将用户的数据存储在库或用户定义的文件夹中

卸载应用程序时,其
/AppData/Local
下的包文件夹将被删除,因此那里什么也没有留下(请注意,其中包含使用
ApplicationData.Current.Local
ApplicationData.Current.Roaming
获得的目录)

因此,为了通过安装永久保存数据,您必须将它们保存在不同的目录中。但是请注意,在选项4的情况下,用户可能不会决定让您访问他上次选择的文件夹,或者不想让应用程序访问文档库

我认为更可靠的解决方案是将数据保存在远程位置,以便用户在再次安装应用程序时可以下载数据,而不是依赖于用户设备上保存的所有内容


关于锁定:您可以查看一下,看看是否适合您的需要。

重申Jeroen的回答:

  • 要将数据本地保存在卸载应用程序时不会删除的位置,必须使用文件选择器让用户选择位置
  • 远程保存数据是不需要用户交互的唯一选项
  • 可以在应用程序的漫游设置中保存数据,因为这些设置在卸载应用程序后会保留一段时间。如果用户在其他地方安装了应用程序,则该数据将持续保留。如果没有其他安装,将保留约一个月

我最近写了一篇博客文章,更详细地讨论了这个确切的场景,包括如何为远程存储的任何数据获取持久的用户身份:。

使用上述内容,感谢joroen Vannevel的重播。主要问题是我不想让用户看到这些文件或删除它们,所以我想将这些文件放在只有我的应用程序才能访问它们的位置,并且即使应用程序已卸载,也不要删除这些文件。然后,您应该在应用程序中加密字节并解密它们。这将使文件无法使用,除非它通过你的应用程序使用