我正在阅读有关.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”:



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

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

取而代之的是,我发现了很多存储配置文件的程序,这些程序仅在C:\Users\Nick\AppData\Local下。有谁知道软件供应商可能会回避使用IsolatedStorage的原因吗?还是他们使用不同的API在AppData下存储文件?

最佳答案

我们发现(困难的方式)的原因之一是,应用程序用于标识隔离存储下使用的路径的算法取决于应用程序版本。安装新版本的应用程序将导致无法访问以前存储的数据。我确信有一些方法可以使此方案起作用,但是我们找不到它们,只是将其移至恒定的存储路径。

关于c# - 有人使用.NET的System.IO.IsolatedStorage吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7116329/

10-11 00:40