Windows:如何将路径较长的文件移动到回收站?
Posted
技术标签:
【中文标题】Windows:如何将路径较长的文件移动到回收站?【英文标题】:Windows: how can I move a file with a long path to the recycle bin? 【发布时间】:2013-02-12 16:09:12 【问题描述】:我正在使用 Python,但我认为 C# 中存在同样的问题。
我希望能够支持扩展路径(len > 260 的路径,表示为 //?/c:/blah/blah)。看起来将文件移动到回收站的标准方法是通过 SHFileOperationW 或 SHFileOperation。
在 python 中,有用的 xplatform 库 move2trash 使用 SHFileOperationW。一些关于 C# 的文章说要使用相同的东西。
SHFileOperationW 的问题在于它不支持扩展路径。这是 SH 工具的一般限制。
有没有人有处理回收站和扩展路径的技巧?
参考链接:C# version、Python version
【问题讨论】:
我刚刚发现了这个 *** 问题,***.com/questions/11737109/…。调查它是否有答案。 这是适用于 Windows 的,对吧? 实际上使用 Win32API 的任何语言都会存在同样的问题。 (鉴于此,使用language-agnostic 代替随机语言标签可能会更好。) 您需要 Vista 或更高版本吗?然后你可以使用IFileOperation
,它适用于任何你可以构造IShellItem
的东西。这可能只会导致更有用的错误,而不是成功,但值得尝试。
另外,IIRC,Vista Explorer 处理此问题的方式是将文件实际重命名为其“路径压缩”等效项(有关某些背景,请参阅here),然后再将其丢弃。 (XP 资源管理器不必这样做,因为它甚至不会让您首先看到文件……)您可以使用GetShortPathName
更简单地(即使在 XP 中)做同样的事情。跨度>
【参考方案1】:
如果您想了解一些 C# 解决方案,快速搜索“PathTooLongException”会在 Stack Overflow 上引发很多关于它的讨论。您可能可以检索“短名称”并使用它来移动它。此外,您还可以通过http://bcl.codeplex.com/wikipage?title=Long%20Path 处的解决方法查看他们如何在这个 C# 库中处理它
【讨论】:
【参考方案2】:你没有。不能将路径超过 259 个字符的文件放入回收站。
【讨论】:
我不认为这是完全正确的,因为你绝对可以在 Vista 的资源管理器中做到这一点。 IIRC,其工作方式是使用相同的路径压缩技巧,让您首先在资源管理器中看到文件。以上是关于Windows:如何将路径较长的文件移动到回收站?的主要内容,如果未能解决你的问题,请参考以下文章
putty如何快速打开文件名较长的文件?如何连接自己的电脑?如何打开桌面的图标?本人只是个菜鸟,求回答
雨后清风教你将回收站设置为在Windows10中立即永久删除文件