0

不确定我有这个问题的最佳标题。随意修改或建议更改,我将自己进行编辑。

我有一个独立的可执行文件,它想要维护一个特定于应用程序的 settings.bin 文件。有两种明显的方法可以做到这一点:

1.从可执行文件所在的本地目录创建/读取文件

  • 正面:用户可以将exe和bin文件复制到多个目录,并且有不同的settings.bin文件的多个版本。
  • 否定:我不想污染可执行目录。

2. 从本地应用程序数据文件夹等“隐藏”位置创建/读取文件。

  • 正:不污染可执行目录。
  • 否定:settings.bin 文件将在可执行文件的任何实例之间共享,无论它位于何处。

我不想做这些解决方案中的任何一个,因为它们都不能满足我的两个要求,它们是:

  • 不要污染可执行目录(IE:不要创建本地文件)。
  • settings.bin 文件根据可执行文件的位置而有所不同。

有什么想法吗?我想将 settings.bin 文件作为资源嵌入,但很快了解到您不能写入嵌入式资源。我完全没主意了。

4

2 回答 2

1

使用选项 2 并稍作修改,取消您的负面观点(未共享)

你必须有一些东西可以区分 exe 文件。

如果所有人都驻留在不同的路径中,我将执行以下操作:

1)哈希可执行文件的位置(路径的md5)

2)用哈希在appdata中创建一个目录

3)在那里存储我的文件

否则,与其他流程相比,我会尝试列举自己:

1)开始检查应用程序数据时。

2) 尝试锁定文件写入:[App Data]\1\sem.oi

3) 如果尝试锁定文件写入失败:[App Data]\2\sem.oi

使用您能够在其中打开文件的目录中的设置

希望这可以帮助。

于 2012-09-11T20:06:33.213 回答
0

好吧,您可以像序列key-value对一样将配置数据定义到应用程序资源文件中。通过这种方式,信息将被嵌入到您的二进制文件中,因此希望您能满足您的两个要求。

  • 没有专门为配置创建的文件
  • 并且每个文件都可以有自己的内置配置,这意味着在这种情况下您必须进行不同的构建。

不创建文件怎么样,但在本地机器上根据exe路径进行灵活配置,我认为这几乎是不可能的,如果不是通过一些网络访问和一些奇怪的(在我看来)架构。

如果你能解释为什么你有这些要求,可能会给出更合适的答案,以防现在不是这样。

于 2012-09-11T19:33:17.783 回答