Windows檔案刪不掉-指定的檔名無效或太長,請指定其他檔名-can not delete file because of the long name



很早很早以前,windows的檔案名稱不能太長,後來windows XP的時代有人發明了一個小補丁,可以讓檔案名稱變很長,史稱第一次慘案。

這次慘案讓你在A電腦儲存檔案的時候覺得一切都好,沒有問題,但是等你用USB或是其他設備改存放到B電腦的時候,B電腦裡面變成無法開啟、移動、刪除。

有一位大大分享了解決方法

https://home.gamer.com.tw/creationDetail.php?sn=4446604

但要小心,因為這種刪法很強力,拉錯了就會刪得很大

--------------分隔線--------------

要解決這個燙手山芋,你只需要兩行 DOS 指令:

DEL /F /A /Q \\?\%1
RD /S /Q \\?\%1

首先請開啟記事本,將上述 DOS 指令複製貼到記事本裡。然後把檔案名稱「OO.txt」另存新檔成批次檔「OO.bat」( OO可隨意命名 ),再把想刪除的檔案拖曳到「OO.bat」即可刪除。

--------------分隔線--------------


時間演進到後來,不知到是Windows 7或是更早,長檔名已經可以很長很長了,不再需要補丁就可以取很長的名字,但是總字數仍然有限制,這個檔名的長度,據說可以到260個字元。而這個字元到底是指中文字還是英文字,我是沒有研究。但這個內建功能,導致了第二次慘案。

你在A電腦裡面的A1資料夾中,開了A2子資料夾,然後把檔案存在A2子資料夾裡面,一切好好的。這時候檔案存放在 D:\A1\A2\000000000000000000000000000000000.jpg

過了不知到多久,你心血來潮,整理資料夾,重新歸類檔案,你看到這些東西把他放在了一個新的資料夾

D:\我今天就是心情好想背出師表背完再移動\但是我發現我已經忘了出師表\所以我改背金剛經\你以為我會金剛經嗎\哈哈哈\...很多很多很長很長...\A1\A2\000000000000000000000000000000000.jpg

然後你發現檔案打不開了、無法移動、無法刪除,跟你說指定的檔名無效或太長,請指定其他檔名。

用上面的方法也解決不了,這時候該怎麼辦?

首先要知道原因,是因為檔名太長,因為windows的檔案名稱長度是包括了所有路徑,不僅僅是檔名,也就是說:

「完整路徑長度」=「目錄 + 檔名」

這時候你要做的事,就是修正之前自己做的蠢事,把路徑中間的資料夾名稱改短,例如改成

D:\0\1\2\3\...4/5/4/6/8/9...\A1\A2\000000000000000000000000000000000.jpg

這時候應該就可以變更這個檔名或是移動刪除了

沒有留言:

Using Command Line to Mirror a Folder Every Day Automatically with .bat file and task schedule function in Windows電腦自動備份檔案

 Windows其實有很多厲害的功能是書上不會寫的,但是只要你問得出問題來, 你就能找到答案 , 而這個問題通常要用英文去問。 但那是以前, 就在我找了茫茫blog海終於研究出來之後,我發現我可以問chatGPT... 好的,既然你能找到我這邊,就代表你問對問題了,答案直接說,原...