請教一下:

有沒有類似mklink.exe或junction.exe這種小程式
但是可以把"單一檔案" LINK到別的地方
而不是"整個目錄"

我是win 8.1系統


例如 我D:\GAME\A\
A目錄下有很多檔案 我只要把其中一個A.DAT link到 R:\B\
R:\ 是記憶體做出來的RAMDISK


smallhaung wrote:
有沒有類似 mklink.exe 或 junction.exe 這種小程式
但是可以把"單一檔案" LINK 到別的地方
而不是"整個目錄"


Windows 內建的 mklink 就能符合你需求了,試試看

mklink R:\B\A.DAT D:\GAME\A\A.DAT

John wrote:
Windows 內建...(恕刪)



我D:\GAME\A\ 下有很多檔案
而我只link其中一個檔案到R:\

目的是騙過遊戲主程式 當他讀取D:\GAME\A\A.DAT時
其實是讀取R:\A.DAT 以達到加速功能(讀記憶體總比硬碟快)

所以D:\GAME\A\A.DAT 是必須刪除掉的

由於記憶體沒那麼多 所以只LINK一個檔案

整個目錄link到別的地方(不同分割區)我會用
但是要指定目錄下有很多檔案中的單一檔案 似乎沒辦法
mklink D:\GAME\A\A.DAT R:\A.DAT

mklink 不加參數 D 就是檔案符號連結

John wrote:
mklink D:\...(恕刪)


我試了一下

在d:\A\ 建立3個文字檔案 111.txt 222.txt 333.txt

然後下指令 mklink r:\111.txt d:\a\111.txt

R:\ 下有一個111.txt 出現了

但是 刪除了d:\a\111.txt  點r:\111.txt  此時無法讀取檔案內容

表示這不是我要的功能



我要的功能是:
當遊戲主程式 讀取d:\game\a\a.dat時
他會被link騙過 而去讀的是r:\a.dat


smallhaung wrote:
mklink r:\111.txt d:\a\111.txt


你這樣是指,在 R 建立一個 111.txt 的連結,而這個連結實際是連到 D:\a\111.txt

而你真正目的,是讀取 r:\111.txt
但遊戲,是認 D:\a\111.txt

所以,你應該是把 D:\a\111.txt 複製到 R:\
然後建立一個 D:\a\111.txt 的連結,而連結實際是連到 R:\111.txt

因此你的寫法要反過來

mklink D:\a\111.txt R:\111.txt

John wrote:
你這樣是指,在 R ...(恕刪)


原來如此 多謝你了
我再去試看看遊戲會不會出錯

smallhaung wrote:
我試了一下
在d:\A\ 建立3個文字檔案 111.txt 222.txt 333.txt
然後下指令 mklink r:\111.txt d:\a\111.txt
R:\ 下有一個111.txt 出現了
但是 刪除了d:\a\111.txt  點r:\111.txt  此時無法讀取檔案內容..(恕刪)


用反了

正確為:

實體檔案,放 RAMDisk(因為 RAM 比較快)

軟連結,放 硬碟原先位置(因為要騙過軟體)

************************************************

我試了一下 mklink 好像可行的樣子



語法:mklink [軟連結的位置] [目標]

參數:
---------------
/D 建立目錄的 symbolic link(和 junction 差別是?~不清楚)

/H 建立 hard link(須同一磁碟,兩個 inode 共用同一個實體檔案)

/J 建立 Junction 目錄軟連結(這種確定可以騙過系統和軟體)




先建立一個 R:\aaa.txt(實際存在的檔案)

然後指令:mklinke "f:\test\aaa.txt" "r:\aaa.txt"




再建一個普通的捷徑,方便等會比較差別



dir 可以看差別

軟連結型態是:SYMLINK(symbolic link,符號連結)

普通的"捷徑",沒有型態,而副檔名是 .lnk(這種的無法欺騙軟體)


刪除 f:\test\aaa.txt(把符號連結刪掉)
r:\aaa.txt 不會消失(實體檔案不會消失)


但這不知道實際遊戲能不能騙過,麻煩樓主測試一下,我也很想知道
fedora wrote:
/D 建立目錄的 symbolic link(和 junction 差別是?~不清楚)


比較大的差別是一個能支援 UNC Path

mklink D:\testd \\nas\Public
mklink D:\testj \\nas\Public

這能在 D 建立一個 testd 和 testj 的連結

可是只有 testd 能直接存取 \\nas\Public 的資料,但 testj 不行
你可以試試看

fedora wrote:
用反了正確為:實體檔...(恕刪)


我是玩線上3D遊戲
今天測試可以成功騙過主程式
但是感覺不出來過圖loading有變快
可能是我沒抓到正確的檔案
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!