某種情況下,在 Windows 裡複製檔案時,可能會出現有點嚇人或令人感到不知所措的警告訊息。
雖然很嚇人,但事實上不用過度的擔心,這算是一個很不常見的正常現象。首先,先來瞭解在什麼情況下,才會出現這樣的訊息。
通常情況,這個檔案是從網路下載的檔案。當我們把這個下載的檔案從 NTFS 的磁碟複製到 FAT32 的磁碟(例如:隨身碟)時,就會發生這樣訊息。
在 NTFS 的磁碟,支援一種叫 stream data (alternate data streams) 的資料串,這個資料串有一個特點:就是不論我們寫入多長的資料串,原始檔案的檔案大小不會因此而改變。例如:A 檔案為 100KB,我寫入了 500KB 的資料串到 A 檔案,就我們觀點來看,理論上 A 檔案會變成 600 KB,不過事實上 A 檔案的檔案大小仍然維持著 100KB。
當我們從網路下載檔案,特別是 EXE 檔案,在 NTFS 磁碟上儲存時,就會同時寫入 stream data。也因為如此,所以當我們在執行 EXE 檔案時,就會看到類似這樣的畫面:
但是在非 NTFS 的磁碟,例如:FAT32,不支援 stream data,所以這也就造成了為什麼我們將 NTFS 磁碟的檔案複製到 FAT32 的磁碟時,會出現如同第一張圖那麼驚人卻又不知該如何做抉擇的警告訊息了。所以,其實以第一張圖來講,直接選『是』就可以了,不用擔心檔案真的會發生問題。
不知大家有沒有留意過,有些檔案的內容,會有一個【解除封鎖】的按鈕
其實按下【解除封鎖】之後,stream data 也就會一併被清除了。
這也就代表日後我們在複製檔案,或者執行這個檔案時,就不會再有一些奇怪或者有點煩人的警告視窗了。
stream data 的存在與否,對於檔案的完整性,可說是沒有什麼影響,但對於我們一般使用者而言,可能就會有稍稍的不便。如果你認為你的檔案不需要 stream data,尤其是 EXE 檔案。
也可藉由微軟的 Streams 這支程式,來幫我們大量快速地清除 stream data。
官方網頁:https://technet.microsoft.com/en-us/sysinternals/streams
直接下載網址:https://download.sysinternals.com/files/Streams.zip
這是一個 CMD 的程式,不會有任何的 GUI 介面(我最喜歡種程式了!),使用方法非常簡單,它所使用的參數也只有兩個。
-s Recurse subdirectories -d Delete streams
- -s:代表連同子目錄的檔案一併處理
- -d:代表刪除檔案的 stream data
用法大致如下:
# 顯示目前資料夾某一檔案的 stream data streams [檔案名稱] # 顯示目前資料夾所有檔案的 stream data streams * # 顯示特定資料夾內檔案的 stream data streams D:\test\[檔案名稱] streams D:\test\* # 顯示目前資料夾及子資料夾所有檔案的 stream data # 多加了參數 -s streams -s * # 顯示特定資料夾及子資料夾所有檔案的 stream data # 多加了參數 -s streams -s D:\test\*
刪除跟顯示幾乎相同用法,只是多加了參數 -d
# 刪除目前資料夾某一檔案的 stream data streams -d [檔案名稱] # 刪除目前資料夾所有檔案的 stream data streams -d * # 刪除特定資料夾內檔案的 stream data streams -d D:\test\[檔案名稱] streams -d D:\test\* # 刪除目前資料夾及子資料夾所有檔案的 stream data # 多加了參數 -s streams -d -s * # 刪除特定資料夾及子資料夾所有檔案的 stream data # 多加了參數 -s streams -d -s D:\test\*
雖然 streams 這程式沒有圖形介面,但這種程式有時候反而才能達到所謂的自動化功能。
我通常都用 FDM(Free Download Manager )這個開放原始碼的續傳軟體,透過命令列的方式,我可以讓 FDM 在下載完成後,自動執行 streams 幫我刪除下載後檔案的 stream data,所以我才會說我最喜歡這種程式。