为应用程序的每个实例创建唯一的应用程序数据目录
本文关键字:应用程序 唯一 数据目录 创建 实例 | 更新日期: 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*文件夹。
- 使用IsoltaedStorage
但你的篇幅有限。。