Categories

A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.

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>