0

我有以下情况:

我编写的主要软件使用由模拟器创建的数据库。这个数据库目前大约有 10 GB 大,所以我希望每个系统只保留一份该数据的副本。

假设我有以下项目:

使用数据的主软件,位于 /SimData

DLL 使用数据进行调试,在 /SimData 中搜索数据

解析图像数据库的调试工具,在/SimData处搜索数据

因为我不想让所有这些程序都有自己的 SimData 副本(不仅是为了减少使用的地方,而且也是为了确保所有程序使用的所有模拟数据始终是最新的)。

我为 DLL 和调试实用程序创建了一个名为 SimData 到 MainSoftware/SimData 的链接,但是当打开带有“SimData\MyFile.data”的文件时,它找不到它,只有带有 ACTUAL SimData 文件夹的 MainSoftware 可以找到它。

如何在不设置绝对路径的情况下使用 MainSoftware/SimData 文件夹?

这是在 Windows 7 x64 上

4

2 回答 2

1

您需要一种配置数据库位置的方法。您可以使用 INI 或其他配置文件、注册表设置、命令行输入或环境变量。或者您可以编写程序来搜索目录层次结构...例如,如果各个模块在目录树中通常是彼此的兄弟,您可以搜索 SimData/MyFile.data、../SimData/MyFile.data , ../../MainSoftware/SimData/Myfile.data,并使用找到的第一个。

哪个答案是“正确的”取决于您的情况。

于 2013-06-13T13:38:11.483 回答
1

我同意 Peter 关于将数据库位置添加为可配置参数的观点。一个常见的存储位置是在注册表中。

但是,如果您想创建软件可以识别的链接,请尝试使用硬链接。. fsutil 应该按照此处描述的方式进行操作。

于 2013-06-13T14:02:38.300 回答