Windows 暫存資料夾裡,哪些檔案可以刪
Windows 的暫存資料夾不止一個。目前帳戶自己的是 %TEMP%,一般在 C:\Users\<使用者名稱>\AppData\Local\Temp。整台電腦共用的是 C:\Windows\Temp。Windows 11 上以 SYSTEM 身分執行的處理程序還會用 C:\Windows\SystemTemp。放了一週以上的檔案可以放心刪。正在使用的檔案會拒絕刪除,這是正常的,略過就好,不要硬刪。最省事又安全的做法是設定 › 系統 › 儲存空間 › 暫存檔。想讓它自動處理就開儲存空間感知。
暫存資料夾在哪
程式用哪個暫存資料夾不是隨便挑的。微軟的 GetTempPath2 說明寫了一般程式的查找順序:先看 TMP 環境變數,再看 TEMP,然後是 USERPROFILE,最後是 Windows 目錄。以 SYSTEM 身分執行的處理程序拿到的則是 C:\Windows\SystemTemp,其他處理程序存取不了。
| 資料夾 | 誰往裡寫 | 誰能清理 |
|---|---|---|
%TEMP%(AppData\Local\Temp) |
目前帳戶裡執行的程式,包括很多安裝程式 | 自己就行,不需要系統管理員權限 |
C:\Windows\Temp |
整台電腦範圍的暫存工作 | 系統管理員 |
C:\Windows\SystemTemp |
以 SYSTEM 身分執行的處理程序 | 系統管理員,用 Windows 內建的清理工具 |
開啟自己的那個,按 Win + R,輸入 %TEMP% 再按 Enter 就行。每個 Windows 帳戶都有自己的 %TEMP%。清自己的不會動到別的使用者。
暫存檔為什麼越積越多,為什麼有的刪不掉
微軟的 cleanmgr 參考說得很直接。程式有時會把暫存資訊存在 Temp 資料夾裡,結束前通常會自己刪掉。一週內沒改動過的暫存檔可以放心刪。留下來的,多半來自當機的程式、裝到一半被關掉的安裝套件,或者從來不收拾的軟體。常見的是解壓縮出來的安裝程式、更新下載、記錄,還有一些軟體故意放在這裡的快取。
程式還開著的檔案刪不掉。Windows 會提示檔案正在使用。這是系統在保護還沒做完的工作,例如一個安裝程式剛把自己解壓縮出來,正等著你點下一步,或者影片剪輯軟體正在寫它的暫存檔。這些略過就行。程式關掉以後通常就會放開。重新啟動會把所有程式都關掉,下次清理就能清掉。
一週這條線在 C:\Windows\Temp 裡最要緊。安裝程式和 Windows 元件工作時可能把工作檔放在這裡。今天的檔案也許正處在一次更新的中途,所以 Windows 自己的工具和 Mole 都不碰一週以內的東西。
用 Windows 內建的工具清理
Windows 11 上開啟設定 › 系統 › 儲存空間,點暫存檔。Windows 會按類別列出大小。只勾自己認得的。下載那一項除非自己先看過那個資料夾,否則別勾。微軟的釋放空間說明裡,清理建議裡同樣列著暫存檔。
想讓它自動處理,就在同一個儲存空間頁面打開儲存空間感知。微軟的儲存空間感知說明寫著按預設設定它會在磁碟空間不足時執行。不設規則就不會動下載資料夾和雲端檔案。磁碟清理也還能用。兩者逐個類別的對比見 磁碟清理和儲存空間感知怎麼選。
先看大小,想手動清也可以
下面幾條 PowerShell 命令只讀取。第一條看 %TEMP% 一共多少 MB,後兩條看其中七天以前的有多少:
(Get-ChildItem $env:TEMP -Force -Recurse -File -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum / 1MB
$cutoff = (Get-Date).AddDays(-7)
(Get-ChildItem $env:TEMP -Force -Recurse -File -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -lt $cutoff -and $_.CreationTime -lt $cutoff } | Measure-Object Length -Sum).Sum / 1MB
這裡故意同時看了兩個日期。今天才複製進來或解壓縮出來的檔案,修改日期可能還是壓縮檔裡帶的舊日期,只有建立日期能說明它是今天來的。兩個都看,剛解壓縮出來的安裝程式就不會被算進去。
想手動刪,先預覽,加上 -WhatIf。PowerShell 只會把要刪的東西列出來:
$cutoff = (Get-Date).AddDays(-7)
Get-ChildItem $env:TEMP -Force -Recurse -File -ErrorAction SilentlyContinue | Where-Object { $_.LastWriteTime -lt $cutoff -and $_.CreationTime -lt $cutoff } | Remove-Item -Force -WhatIf
看一遍清單,認得出還在用的,先把對應的軟體關掉,再把同一行去掉 -WhatIf 執行。Remove-Item 是直接刪除,不進資源回收筒。遇到被佔用的檔案報錯是正常的,什麼也不會改變。預覽裡如果出現連結或目錄連接,略過它們,只處理一般檔案。
哪些事不要做
- 不要刪除 Temp 資料夾本身,也不要刪它下面的
Low資料夾。程式預設這些資料夾存在,清空裡面的東西就好,別把資料夾刪了。 - 不要為了刪掉頑固檔案去取得
C:\Windows\Temp或C:\Windows\SystemTemp的擁有權。那裡刪不掉的檔案通常屬於正在執行的安裝程式、更新或服務。 - 不要在裝軟體、Windows 更新或匯出大檔的時候清理。等它做完,或者先重新啟動。
- 不要只為了省空間就把
TEMP和TMP改到別的磁碟。很多程式和安裝套件都依賴它們。微軟的 Dev Drive 文件在唯一建議這麼做的場景裡,也提醒了可能的副作用。
Mole for Windows 怎麼處理暫存檔
Mole 的清理頁有兩列。暫存檔對應自己的 %TEMP%,只刪七天以前的內容。判斷時取修改日期和建立日期裡較新的那個,和上面的做法一樣。%TEMP%\Low 會保留,因為這個資料夾帶著低完整性標籤,沙箱裡的程式要靠它才能寫暫存檔。正在使用的檔案會略過,下次執行再處理。剛剛被清空的資料夾也要等它自己的日期過了七天才刪。
Windows 暫存檔對應 C:\Windows\Temp 和 C:\Windows\SystemTemp,同樣只處理七天以前的內容。這兩列需要系統管理員權限,全選不會替你勾上,點清理時才跳出授權。取消授權就保留不動。裡面的資料夾也會保留,正在執行的安裝程式的工作目錄不會被刪掉。一般列按設定裡的移除方式處理,系統管理員列直接刪除。清理頁列出的其他內容可以看 Windows 快取清理。
清完以後怎麼確認
在本機裡記下 C 槽的可用空間,清理,再看一次。暫存資料夾會隨著用電腦慢慢再滿起來。下週又多出幾百 MB 很正常。如果每天都漲好幾個 GB,就該找出是誰在寫。把 %TEMP% 按修改日期排序,看最新的幾個資料夾名稱,去處理那個程式,而不是清得更勤。空間還是不夠的話,原因在別處。下一步可以看 C 槽滿了怎麼分類排查。
常見問題
Windows 11 的暫存檔可以刪嗎?
放了一週以上的可以。微軟說一週內沒改動過的暫存檔可以放心刪。正在使用的檔案屬於還在執行的程式,略過就行。
Windows 的暫存資料夾在哪裡?
自己的是 %TEMP%,一般在 C:\Users\<使用者名稱>\AppData\Local\Temp。整台電腦共用的是 C:\Windows\Temp。Windows 11 上 SYSTEM 處理程序用的是 C:\Windows\SystemTemp。
Temp 資料夾裡為什麼有些檔案刪不掉?
還有程式開著它們。常見的是安裝程式、更新或軟體的暫存檔。關掉程式或重新啟動後再清。不要取得擁有權硬刪。
儲存空間感知會自動刪除暫存檔嗎?
打開以後會。按預設設定它在系統磁碟機空間不足時清理暫存檔。不設規則就不會動下載資料夾。