2013-02-27 251 views
5

我正在使用Python,但我認爲在C#中存在同樣的問題。Windows:如何將具有較長路徑的文件移動到回收站?

我希望能夠支持擴展路徑(len> 260的路徑,表示爲//?/ c:/ blah/blah)。它看起來像將文件移動到回收站的標準方式是通過SHFileOperationW或SHFileOperation。

在python中,有用的xplatform庫move2trash使用SHFileOperationW。 C#上的一些文章說要使用相同的東西。

SHFileOperationW的問題是它不支持擴展路徑。這是SH工具的一個普遍限制。

有沒有人有任何處理回收站和擴展路徑的技巧?

參考鏈接:如果你想看看一些C#的解決方案C# versionPython version

+1

我剛剛發現這個stackoverflow問題,http://stackoverflow.com/questions/11737109/how-can-i-delete-a-folder-or-file-with-path-too-long-in-recycle-完事。調查,看看它是否有答案。 – greenhat 2013-02-27 00:38:44

+0

這是用於Windows的,對吧? – EOL 2013-02-27 00:53:00

+0

實際上使用Win32API的任何語言都會存在同樣的問題。 (鑑於此,使用[tag:language-agnostic]而不是隨機語言標記可能會更好)。 – millimoose 2013-02-27 01:36:48

回答

0

快速搜索「PathTooLongException」變成了Stack Overflow上關於它的相當多的討論。您可能會檢索「短名稱」並使用它來移動它。另外,你可以看看他們是如何在這個C#庫中處理它的,並且採取了一種解決方法:http://bcl.codeplex.com/wikipage?title=Long%20Path

0

你沒有。無法將文件放入回收站,路徑長度超過259個字符。

+1

我不認爲這是真的,因爲你絕對可以在Vista的Explorer中做到這一點。 IIRC,這種工作方式是通過使用相同的路徑壓縮技巧,讓你首先看到資源管理器中的文件。 – abarnert 2013-02-27 01:51:17

相關問題