我想要實現的是運行一個程序,該程序認爲文件夾存在於其自己的文件夾中,而實際上該文件夾位於系統中的其他位置。在虛擬文件系統中運行進程?
所以我的程序將啓動一個進程,說的過程:文件夾是在C:\ A是你自己的目錄中,在C:\ Program Files文件(x86)的\ SomeProgram \ A
所以「虛擬」目錄只對該進程可見。我使用Qt編程我的程序,所以如果有任何Qt函數我可以使用,這將是偉大的(關於可移植性)。但是,計劃C++或任何Windows綁定API都可以。
我在想NTFS連接點或符號鏈接,但我不知道如何在C++中創建其中的任何一個,更不用說將它們綁定到特定的進程。
提前致謝!
編輯:
關於上述,我發現這樣一個問題:https://superuser.com/questions/234422/does-windows7-support-symbolic-links-folder-shortcuts。但是,它僅顯示如何從命令行執行所需的操作,並且不會受到進程限制。
編輯2:
一些額外的信息:我試圖創建一個由一對夫婦的其他目錄的虛擬目錄,但後來合併了(我使用一個優先系統,以決定哪些文件從其他文件中「贏」)。這些合併的目錄將作爲包含合併文件的一個目錄出現在目標進程中。
你在談論符號鏈接嗎? – 2014-09-28 20:43:29
我認爲是這樣,但是我需要鏈接僅對目標進程可見並使用C++創建它們。 – Qub1 2014-09-28 20:45:54
一種方法是掛鉤底層文件系統API(CreateFile,FindFirstFile等)並在那裏執行重定向。如果你走這條路,我建議查看微軟的Detours庫。 – MrEricSir 2014-09-28 21:04:06