有人使用.net 's System.IO.IsolatedStorage吗?

本文关键字:System IO IsolatedStorage net | 更新日期: 2023-09-27 18:05:58

我正在阅读。net中的System.IO.IsolatedStorage名称空间,并发现我可以使用它将文件存储到我的程序集或可执行文件的唯一位置。例如,下面的代码:

using System.IO.IsolatedStorage;
public class Program
{
     static void Main(string[] args)
     {
           IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForAssembly();
           store.CreateFile("myUserFile.txt");
     }
 }

在以下位置创建文件"myUserFile.txt":

C: '当地用户'尼克' AppData ' ' IsolatedStorage ' bhxcjtkp.bpv ' wbjkcolm.3br ' StrongName.m2s0saaun2onmow3pd5pkml30lf2dobr ' AssemFiles

使用IsolatedStorageFile.GetMachineStoreForAssembly()在C:'ProgramData'IsolatedStorage下创建一个类似的目录结构。

我可以看到让这个API为您创建存储位置的好处(而不必自己考虑文件路径)。但我很惊讶地发现,IsolatedStorage中没有存储任何其他第三方应用程序的文件(至少在我的计算机上没有)。

相反,我发现相当多的程序将配置文件存储在c:' users ' nick ' appdata ' local下。有人知道为什么软件供应商可能会回避使用IsolatedStorage吗?还是他们使用不同的API将文件存储在AppData下?

有人使用.net 's System.IO.IsolatedStorage吗?

我们发现(困难的方法)的一个原因是,应用程序用于识别在隔离存储下使用的路径的算法依赖于应用程序版本。安装新版本的应用程序将导致无法访问以前存储的数据。我确信有选项可以使这个场景工作,但我们找不到它们,只是移动到一个恒定的存储路径。

隔离存储对于应用程序和用户设置以及类似的数据是理想的。我所说的"这样的数据"是指那些不是应用程序关键的数据(因为你已经看到的原因),但有利于远离用户的眼睛。

清除隔离存储非常容易,所以希望总是如此,您不会失望。