找回密碼
 註冊

關於更改Google Chrome暫存檔資料夾至Ramdisk

分類: 山中聽海 2013-4-27 11:36 顯示全部回文 |閱讀模式
6 33546
本文章最後由 山中聽海 於 2013-4-27 11:41 編輯

  相信有在用Ramdisk的板友應該都恨不得將所有暫存檔路徑全拉去Ramdisk吧?

  實際上我現在就是這樣,不管是三個常用瀏覽器(FireFox、Google Chrome、IE),還是系統本身的暫存檔(AppTemp、Windows Temp)全都給他拉到Ramdisk去了。各位也別擔心這樣Ramdsik會被吃爆,因為我目前為止劃了2GB記憶體給Ramdisk,但真正用到的量永遠不超過512MB……

  但我的RamDisk是每次關機都會清空的,資料不會累加,所以用量才會這麼省。如果會累加的話……估計不去清他的情況下,沒幾天就爆了吧?

  那麼今天咱們要談的,我想有用Ramdisk又常用Google Chrome的板友們應該都很頭痛吧。因為Google不知道哪根筋秀逗,就是不給咱們自訂Cache Folder的位置。

  目前最常看到的「土炮」方式,就是在開啟連結的捷徑後面加上參數,指定Cache Folder的位置。一開始我也是使用這種方法,但是沒多久我就發現一個大問題了:因為我並非以Google Chrome為預設瀏覽器,通常都是用外部呼叫的方式開啟它,但因為使用捷徑參數指定Cache Folder的方式,只有在使用該捷徑啟動Google Chrome時才會將Cache Folder指定到該資料夾。若不是用該捷徑啟動Chorme,則Cache檔案還是會跑到預設的資料夾去。

  這樣一來,我設捷徑參數不就設心酸的?

  後來我又去爬文,發現原來可以在登錄檔裡面更改外部呼叫參數的捷徑,這樣只要有外部程式呼叫Chrome時,就可以把Cache Folder也指定到Ramdisk了。

  但是!BUT!……

  我發現更改後,每次外部程式呼叫後,就只會「開啟」Chrome,而不會開啟網頁……

  試了幾次後才發現,原來其預設的「-- "%1"」參數,就是讓外部程式呼叫Chrome開啟後,可以直接載入欲開啟網址用的。因為設Cache Folder的參數時,有該參數則Cache Folder設定參數會失效(就是Cache檔依然會跑回預設地方去),所以每篇教學都說要把這個「-- "%1"」參數刪除。

  可是,我刪除該參數後,每次外部呼叫就只會開啟Chrome而不會載入網頁啊!這樣子呼叫Chorme是呼叫好玩的是不是?

  所以我又到處去爬文,之後在國內、外網站又發現了另外兩種更改Google Chrome Cache Folder的方式。其中一種是從磁碟管理下手,但這種方法我無法使用,因為我使用的SoftPerfect Ramdisk本身不會在磁碟管理顯示出Ramdisk(官方證實是當初設計就這樣做的)。另一種則是使用Symbolic Link的方式「欺騙」Google Chrome。其實說欺騙也不算啦,因為系統本身就用了一堆Symbolic Link到處亂連。

  譬如說,各位進到自己的帳戶資料夾,除了看到AppData資料夾之外(請開啟顯示隱藏資料夾與檔案),還會看到一個Application Data的Symbolic Link,但各位開啟那個Application Data後,會發現它只是連到AppData資料夾裡的Roaming資料夾而已……

  所以說,Symbolic Link可以看成是一種「高級」的捷徑,或者是「傳送門」。不過今天要解釋的重點不是Symbolic Link,所以就不詳敘了,如果各位有興趣的話,可以去維基查看相關資料。

  有鑑於使用參數來設定Google Chrome Cache Folder會使其使用範圍太窄,而磁碟管理這招對我又無效,我只能選擇Symbolic Link這個方法了。至少在Google願意為Chrome加上自訂Cache Folder功能前,似乎只有這種克難的方法了。

  可惜這種方法還是有缺點的,如果各位有進去Symbolic Link的維基看看,就會發現Symbolic Link的一個特性:如果Symbolic Link指向的資料夾被移動、重新命名、刪除等,則該Symbolic Link則被視為「被遺棄」。換句話說,Symbolic Link將變成普通的資料夾(Symbolic Link放在哪裡,就在哪裡變成那裡的普通資料夾),而非傳送門。這樣一來,若我重開機後,Ramdisk被洗掉了,只要Google Chrome往該Symbolic Link寫入資料,就等於又在預設的資料夾寫入了,而非被Symbolic Link傳送到RamDisk去……

  那麼……就真的無解嗎?其實也未必。

  之所以我的Ramdisk一被清光,Symbolic Link就失效,是因為我在Ramdisk裡建了五個資料夾,分別放FireFox、Chrome、IE、AppTemp(程式暫存)、Temp(系統暫存)的暫存檔。因此只要RamDisk一被清光,這些資料夾也會跟著消失。

  其餘四個資料夾還好說,因為系統和程式會自己重新建立,但由於Chrome是被我用Symbolic Link欺騙的方式把Cache資料「傳送」到Ramdisk去,所以Chrome只知道它要將Cache寫到預設路徑,而非Ramdisk,因此只要它一向Symbolick Link寫入資料,Symbolic Link就會發現傳送的目的地消失了(該資料夾被刪除),而自己變成該資料夾讓Chrome寫入資料。

  那麼,這個問題我該怎麼解決呢?目前是有兩個方式,一個是將Symbolic Link直接指定到Ramdisk的根目錄,不再用資料夾來分類,但這樣的缺點是RamDisk裡面會群魔亂舞……原本乾乾淨淨的五個資料夾,會變成四個資料夾與一堆雜七雜八的Cache檔。

  第二個方式,就是讓Ramdisk在開啟後(開機完成),自動建立一個Symbolic Link的目的資料夾。

  好在我用的Ramdisk有自動新建資料夾的功能,所以目前應該算是……解決了吧?

  之所以我用不確定語氣,是因為第二個方法是我在打這個文章時熊熊想到的,還沒測試過。

  等我測試好後再上來編輯回報這樣。至於若各位想知道該如何設定Symbolic Link,若各位不嫌麻煩的話其實Google一下就行了,只是資料全都是英文的……如果各位想看中文教學,到時候我再這篇簡單寫一下吧。以上。

  ***

  補充一下,剛剛我重開過RamDisk,確定它可以自己創建該資料夾了,Symbolic Link也沒有因此而退化成普通資料夾,看來困擾我很久的Chrome Cache問題終於解決了,可以享受真正的神速開啟了。

網友回覆6

我是用DATARAM的RAMDISK

google的設快取方法是在捷徑內容中將目標(T):尾端路徑加上 --disk-cache-dir=HDD名稱:\

後來我發現 近期google一直在偷偷更新 導致目標路徑會被更改回預設 目前是26.0.1410.64 m

上次更新後我發現釘在工作列的google捷徑的快取路徑會失效 即使重新釘選也一樣

還有 如果沒有事先開啟google 而是點選外部連結讓它自行開啟google的話 那快取也會跑回預設路徑

我自己用的路徑是 --disk-cache-dir=E:\TEMP\GOOGLE

這樣子它就會在RAMDISK裡面的TEMP自己創一個GOOGLE的資料夾放cache了 也不會雜亂
原廠搭載不OVER,吃了機油才夠FAST。
本文章最後由 山中聽海 於 2013-4-27 18:13 編輯
KaiLoveEcho 發表於 2013-4-27 15:30
我是用DATARAM的RAMDISK

google的設快取方法是在捷徑內容中將目標(T):尾端路徑加上 --disk-cache-dir=HDD ...

 我之前也是用捷徑參數法,不過現在我用的Symbolic Link法卻是一勞永逸,因為除非Google把預設Cache資料夾改掉,不然所有檔案都會自動被傳送到Ramdisk裡面。不管是開啟捷徑(不論有無設定參數),還是外部程式呼叫(捷徑法影響不到)都一樣。

  同理,就算Google在怎麼更新,更改參數也沒用。

  提供參考。

  ***

  我也把Symbolic Link法弄上來好了。

  首先,請先關閉Chrome,並且進入c:\Users\使用者資料夾\AppData\Local\Google\Chrome\User Data\Default\

  裡面有個「cache」資料夾,就是Google Chrome的預設暫存資料夾。請把它刪除。

  然後請用系統管理員權限開啟cmd(命令提示字元),然後請輸入下列指令。不過在輸入前,請先將指令複製起來,並將提示部分更改成您需要的路徑。

  1. mklink /d "C:\Users\使用者資料夾\AppData\Local\Google\Chrome\User Data\Default\Cache\" "您要設定的路徑"
複製代碼
  說明:

  1.使用者資料夾:其實就是您電腦的使用者名稱,您可以進入C:\Users\確認。(如果您在確認使用者名稱後就未更改的話,也可以按開始紐看使用者帳戶名稱確認。)
  2.您要設定的路徑:您想要把Google Chrome的暫存檔傳送到哪?像我是傳到A:\Chrome_Temp這個資料夾裡。您也可以將之傳到您希望他去的任何地方。

  *我將Ramdisk的磁碟代號採為A,反正現在電腦也沒安裝3.5"磁碟機了……

  將代碼內的指令更改完畢後,就請複製到cmd裡面,然後按下Enter,它應該會提示您「已經建立符號捷徑」。這就代表以後所有送往該Cache資料夾的檔案都會自動傳送到您指定的路徑去。

  不過,使用Symbolic Link有一點要注意,如果您將Symbolic Link指到RamDisk裡的一個資料夾,而您的RamDisk並未進行備份資料動作,只要一關機就會洗掉的話,那麼請確保當您開機後,Ramdisk會自動建立Symbolic Link傳送去的資料夾。

  譬如說,我指定的位置是Ramdisk A裡面的Chrome_Temp資料夾,那麼當我關機後,該資料夾會被刪除。當我開機後,Ramdisk會自動把Chrome_Temp資料夾再建立起來,當然裡面是空的。

  為何要這樣呢?因為若Symbolic Link傳送的目的已經不見了(移動、重新命名、刪除等等),則Symbolic Link會失效,變成普通的實體資料夾。到時候您就要重新打指令設定了。

  當然,您也可以直接把路徑指到Ramdisk的根目錄(譬如我的Ramdisk根目錄是A:\),因為Ramdisk基本上都是一開機就會自動開好,就不會出現Ramdisk根目錄不存在的情況。(除非您使用的Ramdisk軟體開啟速度太悲劇……連Chrome都開好,開始往暫存資料夾寫入資料了,Ramdisk軟體卻還未開好。

  以上,就是我從國外那發現的Symbolic Link法。其實Symbolic Link這東西有非常大的用途。譬如說各位若有用Steam,然後遊戲多到Steam安裝所在的硬碟快爆了,就可以用Symbolic Link來個傳送。明明資料應該是存在快要爆掉的D碟,但實際上那裡只有Symbolic Link,真正的資料都在其他磁碟裡。

給個讚

讚: 5.0
讚: 5
我來試看看~~  發表於 2013-4-27 18:01
我並不在乎TEMP裡面有多亂XD 因為我都是用跟TEMP資料夾同一層 也就是最上層來使用RAMDISK

DATARAMDISK可以設定開機自動在RAMDISK裡面建立TEMP資料夾

所以我來試看看用Symbolic Link好了~

原廠搭載不OVER,吃了機油才夠FAST。
KaiLoveEcho 發表於 2013-4-27 18:00
我並不在乎TEMP裡面有多亂XD 因為我都是用跟TEMP資料夾同一層 也就是最上層來使用RAMDISK

DATARAMDISK可以 ...

 其實我也不在乎Temp資料夾裡有多亂,但因為我怕不同軟體用同個Temp資料夾可能會有衝突(剛好遇到檔名一樣,但內容不一樣的暫存檔就GG了。),所以就給他們分門別類了。

  不然大家一起大雜燴在根目錄最方便啦!

  當然,分門別類的另一個原因是因為未來Ramdisk可能會有其他用途,所以先做好基本的歸類免得以後手忙腳亂。
rey940109 2013-10-20 16:11 顯示全部回文
指令應該是這樣才對
mklink /d "C:\Users\user\AppData\Local\Google\Chrome\User Data\Default\Cache\" "您要設定的路徑"

另外想請問一下,設定完傳送門之後
C槽還是會有Cache資料夾,只是資料夾上面有有個箭頭的圖示,這樣是正確的嗎?
暫存檔是兩邊資料夾都會增加,這樣C槽還算是持續被寫入?
山中聽海 2013-10-23 08:45 顯示全部回文
rey940109 發表於 2013-10-20 16:11
指令應該是這樣才對
mklink /d "C:\Users\user\AppData\Local\Google\Chrome\User Data\Default\Cache\" " ...

  不是喔,那個箭頭的資料夾其實就是「傳送門」的輸入端。只是你點進去後,雖然他的路徑看似還是在C,其實已經被乾坤大挪移到目的位置了。如果你擔心「兩邊都寫入」的話,其實可以同時監控兩個磁碟的即時容量,並試著搬移檔案看看。

  然後,我所使用的指令應該沒有錯誤,因為我都是直接來文章複製貼上然後只更改傳送入口路徑與目的地路徑而已,至少系統也是能認得的。