为应用程序的每个实例创建唯一的应用程序数据目录

本文关键字:应用程序 唯一 数据目录 创建 实例 | 更新日期: 2023-09-27 18:01:29

我编写了一个c#应用程序,它被安装在用户定义的不同目录中的多个实例中。例如

C:'Program Files(x86)'MyApp1
C:'Program Files(x86)'MyApp2
C:'MyApp1
C:'MyApp2
...

我想在Environment.SpecialFolder.LocalApplicationData中的独立目录中写入/读取数据文件,每个目录对应一个实例。

在我的代码中,引用每个已安装的可执行文件中对应的目录的最佳方法是什么。例如

C:'Program Files(x86)'MyApp1'app.exe to reference unique app dir C:'Users'xxxx'AppData'Local'MyApp1'

为应用程序的每个实例创建唯一的应用程序数据目录

您可以在路径的末尾附加一个唯一值:C: ''Users''xxxx''AppData''Local''MyApp''ghfdsjgb23

如果每次安装都没有这样的唯一值,则可以使用安装路径的哈希或类似值。

如果您只从应用程序中使用这些数据,并且每个用户都应该有不同的数据可用,那么您可以查看IsolatedStorage,它允许您从数据的真实位置进行抽象,并且可以轻松地存储/检索数据。

事实上,你把同一个应用程序安装在不同的文件夹中,使用不同的名称,这至少表明了我现在无法理解的事情,但最终你应该设计它,让每个实例都能独立运行,就像那些真正不同的应用程序(如word、excel、notepad…(意味着永远不会硬编码路径:(

有几种方法可以满足您的请求。以下是解决您问题的几种可能方案:1.

string sPath = System.Environment.GetFolderPath(     Environment.SpecialFolder.CommonApplicationData) 
       + Path.DirectorySeparatorChar + APP_NAME + Path.DirectorySeparatorChar`

其中APP_NAME是程序集名称。此代码将在*上结束。。。AllUsers''Application Data''APP_NAME*文件夹。

  1. 使用IsoltaedStorage

但你的篇幅有限。。