0

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

  1. 必须只能通过此 .NET 应用程序访问
  2. 一些管理员可以访问存储(用于清理、复制数据等)是可以的,但我想避免用户或任何其他应用程序意外删除此处的文件
  3. 通过 .NET 应用程序,用户可以在运行时创建、修改和删除文件夹和数据
  4. 存储用于使用应用程序的特定用户
  5. 更新 .NET 应用程序(Windows Installer 或 ClickOnce)时,不应触及此存储,并且所有现有数据必须保留在那里才能在更新的应用程序中使用

典型场景:最终用户希望通过应用程序保存图像。该应用程序创建一个文件夹,图像保存在那里。稍后,可以从那里读取该图像并在 UI 上显示给用户。

我阅读了有关独立存储的信息,但我不确定这是否是我应该寻找的。

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

4

1 回答 1

0

隔离存储很好,因为您的用户不会偶然发现它,但管理员也不会,除非他们搜索它。

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

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

  • WinXP: "c:\Documents and Settings\所有用户\应用程序数据"

  • WinV/7/8: "c:\ProgramData"

于 2013-09-30T17:59:32.513 回答