有没有人使用.NET的System.IO.IsolatedStorage?

时间:2011-08-19 02:28:11

标签: c# .net isolatedstorage

我正在阅读.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:\用户\尼克\应用程序数据\本地\ IsolatedStorage \ bhxcjtkp.bpv \ wbjkcolm.3br \ StrongName.m2s0saaun2onmow3pd5pkml30lf2dobr \ AssemFiles

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

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

相反,我找到了很多存储配置文件的程序,简单地在C:\ Users \ Nick \ AppData \ Local下。有谁知道软件供应商可能会回避使用IsolatedStorage的原因?或者他们是否使用不同的API来存储AppData下的文件?

2 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:3)

隔离存储是应用程序和用户设置以及类似数据的理想选择。通过“像这样的数据”,我的意思是那些不是应用程序至关重要的数据(因为你看到的原因),但却远离用户的眼睛。

清除隔离存储非常容易,所以期待这种情况始终如此,您不会感到失望。