Jesse 大師問我他有個PDF 檔案打不開, 但也無法刪除
問我該如何處理
我看了一下是他付費取得的醫學 paper
因為他的特殊分類方式及檔名命名原則
那個檔案被他取了一個將近 300 個字元的檔名
結果 Windows XP (使用 NTFS) 還是讓他存檔
但存檔之後就不讓他再進行任何操作, 包括: 開啟, 更名, 刪除, 複製
%(^#&!*#!
本來想說透過 3rd party 的 shell 程式看有沒有辦法處理
印象中 Norton Commander 應該可以搞定
但後來沒仔細找, 卻找了個 FreeCommander 來試
FreeCommander 可以正確把檔名叫出來, 也允許改檔名
但在儲存時就說失敗了
我在猜這個軟體大概就像 KKMAN或 Maxthon 一樣, 僅是一個 friendly 的 UI
底層還是去 call DOS 原生的 shell 來執行
(KKMAN 及 Maxthon 其實只是架構在 IE 上面的一個 UI, 並不像 firefox 是一個獨立開發的瀏覽器)
後來 google 了一下
發現有篇在老吉伯雜室的文章: 檔名過常怎麼辦?
使用了他提供的方法三:
首先先挑一個沒在用的磁碟機編號,例如 T
subst T: .
T:
rename “thisisafuckinglongfile andyoucantopenit.jpg” new.jpg
C:
subst T: /d
注意第一行最後一個字元是 .
代表現在的資料夾
這樣一來路徑就縮到最短了
再執行rename
最後一行是關掉虛擬磁碟
不過試了兩次才成功
原因是原文沒有提到, 必須在 DOS 模式下切換到要處理檔案所在的目錄再開始動作
否則還是不會成功的
如果檔名長到讓你抓狂也沒關係,
你可以先輸入檔名的前幾個字元,
再按TAB 鍵後, 系統就會自動幫你帶出後面的字元
這個方法後來也成功幹掉一個在我 Notebook 上卡了很久的檔案
因為那個檔案是以 CAOAUX. 的檔名存在
也就是說 . 的後面沒有副檔名
XP 就很天才的自動加了S(System)及H(Hidden) 兩個屬性上去
然後就怎樣刪都刪不掉
用這個方式建立好虛擬的 T 碟後
還要加上用更強悍的參數給 del 指令使用:
T:\> del /H /A CAOAUX.
anyway, 終於除掉一個礙眼很久的檔案了
近期留言