我想模擬一個文件而不寫入磁盤。我在可執行文件的末尾有一個文件,我想給它的路徑指向一個dll。當然,因爲它沒有真正的道路,所以我不得不僞造它。如何創建虛擬文件?
我第一次嘗試在Windows下使用命名管道來做到這一點。這將允許像\\。\ pipe \ mymemoryfile這樣的路徑,但是我無法使其工作,並且我不確定該dll是否會支持這樣的路徑。
其次,我發現CreateFileMapping和GetMappedFileName。他們可以用來模擬另一個片段中的文件嗎?我不確定這是API的功能。
我想要做的似乎與boxedapp類似。有關他們如何做的任何想法?我猜這是API截取(Like Detour)之類的東西,但這將是很多工作。還有另一種方法可以做到嗎?
爲什麼?我對這個特定的解決方案很感興趣,因爲我想隱藏數據並且只分發一個文件的好處,但也是爲了使它以這種方式工作的奇怪原因;) 我同意將數據複製到臨時文件會工作併成爲一個更簡單的解決方案。
你究竟如何分配文件?我會說壓縮或複製exe文件會使NTFS流消失? – 2010-01-20 22:17:07
@Gregory:是的。用例在這個問題中並不十分清楚,但我同意使用流可能不是OP的選項 - 希望這在我的答案中也清楚地表明瞭。我試圖在答案中回答的主要觀點是使用實際文件是最佳選擇。 – villintehaspam 2010-01-20 22:41:51
這是一個非常有趣的想法。太糟糕了,它只適用於ntfs。由於沒有完美的答案,這個是最好的。 – 2010-01-25 15:14:22