0

次のシナリオがあります。

私が書いた主なソフトウェアは、シミュレーターによって作成されたデータベースを使用しています。このデータベースは現時点で約 10 GB の大きさなので、システムごとにそのデータのコピーを 1 つだけ保持したいと考えています。

次のプロジェクトがあると仮定します。

/SimData にあるデータを使用するメイン ソフトウェア

/SimData でデータを検索し、デバッグ用のデータを使用する DLL

画像データベースを解析し、/SimData でデータを検索するデバッグ ツール

これらすべてのプログラムに独自の SimData のコピーを持たせたくないので (使用される場所を減らすだけでなく、使用されるすべてのシミュレーション データがすべてのプログラムで常に最新であることを保証するため)。

DLL およびデバッグ ユーティリティ用に、SimData という名前の MainSoftware/SimData へのリンクを作成しましたが、「SimData\MyFile.data」を含むファイルを開くと、それを見つけることができず、ACTUAL SimData フォルダーを含む MainSoftware のみがそれを見つけることができます。

絶対パスを設定せずに MainSoftware/SimData フォルダーを使用するにはどうすればよいですか?

これは Windows 7 x64 上にあります

4

2 に答える 2

1

DB の場所を構成可能なパラメーターとして追加することについて、Peter に同意します。レジストリに保存する一般的な場所。

ただし、ソフトウェアによって認識されるリンクを作成する場合は、ハードリンクを試してください。. fsutil は、ここで説明されているようにトリックを実行する必要があります。

于 2013-06-13T14:02:38.300 に答える
1

データベースの場所を構成する方法が必要です。INI やその他の構成ファイル、レジストリ設定、コマンドライン入力、または環境変数を使用できます。または、ディレクトリ階層を検索するプログラムを作成することもできます...たとえば、さまざまなモジュールが通常、ディレクトリ ツリー内で互いに兄弟である場合、SimData/MyFile.data、../SimData/MyFile.data を検索できます。 、../../MainSoftware/SimData/Myfile.data、および最初に見つかったものを使用します。

どの答えが「正しい」かは、状況によって異なります。

于 2013-06-13T13:38:11.483 に答える