.NET应用程序的本地数据存储

时间:2013-09-30 10:29:01

标签: .net windows storage local

我需要.NET / WPF应用程序的本地存储,主要用于图像和其他一些东西。我不是在寻找数据库解决方案。 存储的要求是:

  1. 只能通过此.NET应用程序访问
  2. 一些管理员可以访问存储(用于清理,复制数据等),但我想避免用户或任何其他应用程序意外删除这些文件
  3. 通过.NET应用程序,用户可以在运行时创建,修改和删除文件夹和数据
  4. 存储空间适用于使用该应用程序的特定用户
  5. 更新.NET应用程序(Windows Installer或ClickOnce)时,不应触及此存储,并且所有现有数据必须保留在更新的应用程序中
  6. 典型情况:最终用户希望通过应用程序保存图像。该应用程序创建一个文件夹,图像保存在那里。稍后,可以从那里读取该图像并在UI上向用户显示。

    我读到了Isolated Storage,但我不确定这是否是我应该寻找的。

    我还看到许多其他应用程序使用Users / xxxx / AppData / Roaming文件夹来存储应用程序数据。应该使用吗?

1 个答案:

答案 0 :(得分:0)

IsolatedStorage很不错,因为您的用户不会偶然发现它,但除非他们搜索它,否则管理员也不会发现它。

IsolatedStorage的问题在于它是如何被隔离的,我指的是用于选择存储的标准。当你的程序集/ exe更改主要版本时,你将获得一个新的商店,旧的数据将无法访问,除非通过旧的程序集。

我发现Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)是存储数据的好地方 - 它与物理上对应

  • WinXP:“c:\ Documents and Settings \ All Users \ Application Data”

  • WinV / 7/8:“c:\ ProgramData”