將項目導入eclipse時,它以某種方式開始創建目錄的遞歸版本。如何在Windows中刪除長路徑。
現在,當我嘗試刪除任何內容時,我收到消息「您指定的文件名太長。」
我無法從命令行中刪除它。我無法從資源管理器中刪除它。我不能做任何事情。我不知道Eclipse創建了多少個副本。在我意識到有什麼錯誤之前,Eclipse正好運行了一分鐘,並且我取消了操作。
我可以得到頂級文件夾的屬性,它說它包含497個文件夾。
問題1:如何在Windows中刪除所有這些東西?
問題2:到底什麼是日食思維?
將項目導入eclipse時,它以某種方式開始創建目錄的遞歸版本。如何在Windows中刪除長路徑。
現在,當我嘗試刪除任何內容時,我收到消息「您指定的文件名太長。」
我無法從命令行中刪除它。我無法從資源管理器中刪除它。我不能做任何事情。我不知道Eclipse創建了多少個副本。在我意識到有什麼錯誤之前,Eclipse正好運行了一分鐘,並且我取消了操作。
我可以得到頂級文件夾的屬性,它說它包含497個文件夾。
問題1:如何在Windows中刪除所有這些東西?
問題2:到底什麼是日食思維?
我有一個類似於Eclipse的問題:試圖使用Subclipse導入項目,它生成了一組深度嵌套的目錄,我無法刪除。
我做了一些事情,首先我編輯目錄名稱到最短的可能長度(實際上我認爲這是毫無意義的)。其次,我儘可能深入遍歷目錄樹,然後剪切並粘貼分支(這可以刪除原始分支),然後重複該過程。
@Charlie和@ Tomalek的解決方案看起來像他們可能會更優雅。雖然我不打算重複這些經驗。
至於Q1)
使用SUBST到短cirquit的路徑:
subst Q: C:\very\long\path\created\by\eclipse
Q:
del *.*
至於Q2)
龍路徑是較少在其他操作系統中的問題的,並有Windows API函數,可以處理超過255個字符的路徑,所以他們只是做到了,我想。
我的目錄清單。 。 。 dirname - > dirname - > dirname - >。 。 。約500次。 我可以將「q」重新映射到它的任何部分,但是當我嘗試刪除「q」時,它具有相同的問題。 – Baltimark 2009-02-15 16:14:16
然後繼續下一個驅動器號。看看這裏:http://stackoverflow.com/questions/236533/ – Tomalak 2009-02-15 16:54:15
Ok tomalak,你說要繼續添加驅動器號,直到我得到一個足夠短的路徑刪除,然後「從底部刪除」,如果你願意。 與伊恩的思想類似。可能會更高效,更具時效性。謝謝。 – Baltimark 2009-02-17 15:31:17
如果您需要處理超過MAX_PATH
的路徑,則必須使用Unicode版本的Windows文件API(例如DeleteFileW
)並使用\\?\前綴。您可以使用這些API編寫一個簡短程序來枚舉這些目錄並將其刪除。
我遇到了同樣的問題,使用Eclipse ..!一個億的嵌套文件夾被創建,它佔用了超過500MB的空間!
我試過一噸的東西在窗戶並沒有什麼工作..
最後我使用Ubuntu剛剛重新啓動,並刪除了那個可怕的文件夾..就是這樣.. Ubuntu的似乎並不具有任何這樣的訪問限制基於Windows的文件路徑長度.. 使生活更容易..:)
robocopy empty_dir base_nested_dir /purge
例子:如果你有時間太長,例如文件夾路徑:
D:\BackupFolder\Copy\MyFiles\BackupFolder\Copy\MyFiles\BackupFolder\Copy\MyFiles\BackupFolder\Copy\MyFiles\BackupFolder\Copy\MyFiles\BackupFolder\Copy\MyFiles\BackupFolder\Copy\MyFiles\BackupFolder\Copy\MyFiles\BackupFolder\Copy\MyFiles\BackupFolder\Copy\MyFiles\BackupFolder\Copy\MyFiles\BackupFolder\Copy\MyFiles\BackupFolder\Copy\MyFiles
按照下列指示將其刪除。
C:\Users\Name\Desktop\temp
。robocopy C:\Users\Name\Desktop\temp D:\BackupFolder /purge
注:如果在步驟3中任一路徑中有空格,該路徑必須用引號引起來圍封。
修復很簡單,免費!根本不需要重命名文件夾。
下載Cygwin這是免費的。
使用命令rm -f -r <folder-name>
並稍等片刻。
我有一個文件夾的大小爲1.5 GB與無數的內部文件夾,它的工作!
以編程方式,您可以使用DeleteFileW和RemoveDirectoryW
刪除,並且將L"\\?\"
添加到文件名。請注意,您必須使用W版本而不是A版本的API。
大聲笑我幾年前有一個類似的問題。由於一個錯誤,我創建了無限期的文件夾嵌套,直到文件名變得太長。
IIRC,我通過抓取文件夾結構以編程方式刪除它們。
this Windows Sysinternals forum post by maxaha1中提到的方法有效。
我建議你自上而下。只要你保持在同一個 卷(份額),你通常可以拖動上層目錄到 新的父母,而不考慮目錄的內容是 拖動(即和它可能有的長度/遞歸問題)。因此, 你可以將一個目錄放在你的問題路徑下面4或5個級別,然後將其拖動到根目錄下 。然後刪除現在只有 包含幾個級別的原始路徑。理想情況下,努力保持最長的路徑比250個字符(包括文件名)少 。我現在在 處進行系統遷移,並且我們有一些340+字符路徑的用戶,在不使用此方法的情況下不會使用 拷貝。我試過SUBST的,遞歸網使用的, 遞歸腳本,等等。不幸的是,用戶似乎能夠 創造的東西迷惑了最好的程序員,管理員等。
創建新的文件夾,並只需拖動從每個頂部向下拖放幾個文件夾(並刪除它們),直到您清理完所有文件夾。
前三個回覆顯然是垃圾郵件(對於付費軟件演示)。如果你想要一個免費一鍵解決方案,在這裏看到:
http://www.osmstudios.com/Display.asp?Page=pathtoolong
這可能進一步達到這個線程採用3行渣華。
-fm
您可以使用 「Cygwin的」 使用命令 「RM --force --recursive PATH」 或短的 「RM -fr PATH」。
7Zip是最終的解決方案,如果你不熟悉命令行。
乾杯!
我對這裏和其他地方發佈的任何解決方案(robocopy,7zip,subst,shady spyware)並不滿意,所以我推出了我自己的小命令行工具。
它可以遞歸刪除文件或整個目錄。也許在將來我會添加更多選項。您可以從releases page page GitHub獲取該工具。
好吧,我試圖尋找一個解決方案,我發現最簡單的解決方案的一個Windows用戶
打開mobaxterm。轉到您要刪除(使用CD)的目錄,然後運行以下命令
RM -rf目錄名
所有的文件夾,子文件的Windows是抱怨刪除現在被刪除
它很煩人,2016年這個Linux在我們幾年前解決的時候還是呈現給我們Windows用戶的一個問題。當它在Java中很容易做時,它變得更加惱人。
我們應該使用Change.org來請求MS包含此能力。這不難。如果他們擔心向後兼容性,爲什麼不只有管理員可以打開或關閉的嚴格模式。至少給我們一個警告,然後讓我們刪除它。 GRRRRR [/咆哮]
如果您在您的機器上運行Java,你可能會發現這個代碼幫助:
import java.io.File;
public class Delong {
public static void main(String[] args) {
File file = new File("F:\\YourDirectory\\YourFile");
boolean result = deleteDirectory(file);
if(result)
System.out.println("Deleted");
else
System.out.println("Failed");
}//end main
/**
* Force deletion of directory
* @param path The path you want to delete
* @return True if it worked;
*/
static public boolean deleteDirectory(File path) {
if (path.exists()) {
File[] files = path.listFiles();
for (int x = 0; x < files.length; x++) {
if (files[x].isDirectory())
deleteDirectory(files[x]);
else
files[x].delete();
}//end for
}///end if
return (path.delete());
}//endDeleteDirectory
}//end class
如果您已經安裝了您的系統,然後刪除該文件夾的簡單方法上git
它的全部內容是打開一個gitbash
窗口,然後運行這個命令。
$ rm -rf DeleteFolderName
啓動賞金希望更好/更容易/更快的解決方案。另外,有人修復日食,所以它會識別一個愚蠢的遞歸複製操作。 – 2011-02-02 21:32:12
http://technet.microsoft.com/en-us/sysinternals/bb896768並將某些更深的文件夾映射到其他地方。或者在java中編寫4行函數並刪除它; \t`靜態無效cleanDir(文件目錄){ \t \t爲(文件f:dir.listFiles()){ \t \t \t如果(f.isDirectory()){ \t \t \t \t cleanDir(F); \t \t \t} \t \t \t f.delete(); \t \t} \t \t \t} ......提醒一個螞蟻任務可能也會這樣做? – bestsss 2011-02-07 23:23:42
你有沒有試過從代碼中刪除它? – 2011-02-08 15:59:37