0

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

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\
4

3 回答 3

1

您可以将唯一值附加到路径的末尾:C:\Users\xxxx\AppData\Local\MyApp\ghfdsjgb23

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

于 2011-07-08T13:23:42.370 回答
1

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

事实上,您将相同的应用程序安装在不同的文件夹中并使用不同的名称,这至少表明我现在无法理解,但最终您应该以一种每个实例都可以独立工作的方式来设计它,就像 if这些是真正不同的应用程序(如 word、excel、记事本......),这意味着永远不是硬编码路径:)

于 2011-07-08T13:29:29.307 回答
1

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

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

其中 APP_NAME 您的程序集名称。此代码将在 *...AllUsers\Application Data\APP_NAME* 文件夹中结束。

  1. 使用IsoltaedStorage

但你在空间方面有限..

于 2011-07-08T13:47:31.067 回答