背景:
動作するために特定のデータ ファイル セットから読み取る必要がある Windows プログラムがあります。このプログラムは、実際にはデータ ファイルに変更を加えませんが、実行時にファイルをロックします。現在、同じデータを使用してこのプログラムの複数のインスタンスを実行する必要がありますが、データが大きいため重複したくありません。このプログラムは、データ ファイルのパスを指定するための引数を受け入れることができますが、ソース コードにアクセスできません。
私が欲しいもの:
このプログラムの複数のインスタンスを作成できるように、元のファイルと読み取り/書き込み権限を共有しないハードリンクやシンボリックリンクなどを作成する方法はありますか? リンクの変更 (ある場合) については、ソリューションでそれらを完全に削除するか、ある時点で書き戻すかのどちらかで問題ありません。
答え1
排他的にアクセスされたファイルのロックを解除するには、サードパーティのプログラムが必要です。
ほとんどのロック解除製品は、ロックしているプログラムを見つけてそのファイル ハンドルを強制的に閉じることで問題を解決し、実質的にプログラムがファイルをそれ以上使用できないようにします。これは、あなたのケースでは役に立ちません。
以下に、ファイル ハンドルを閉じることで問題を解決できないと思われる製品をいくつか示します。これらのうちの 1 つが問題の解決に役立つかどうか試してみる必要があります。
両方のプログラムが失敗した場合、プログラムの N 個のコピーを実行する唯一の解決策は、N 個の別々のフォルダーにファイルの N 個のコピーを作成し、異なるフォルダーで各プログラム インスタンスを呼び出すことです。