分類

近期留言

Windows下檔名超過256字元的處理方法

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, 終於除掉一個礙眼很久的檔案了

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>