Windows资源管理器替代长路径名


24

更新:

  1. 我发现不仅是Windows资源管理器,还有其他软件 遭受太长的路径名称。例如,在Firefox中,当我 将网页保存到目录中,如果名称或者仍然无法执行 路径名太长了。 Firefox还依赖Windows资源管理器吗? 我怎样才能解决这个问题呢?

  2. 我试过两个回复中推荐的软件。没有 他们可以走很长的路。长路问题是固有的吗? Windows操作系统,无论浏览目录哪个程序?如果 是的,这是否意味着没有办法解决它?

原版的: 我的笔记本电脑上安装了两个操作系统:Windows 7和Ubuntu 10.10。他们共享一个分区。

在Ubuntu中,通过使用Nautilus,我可以创建位于共享分区的路径层次结构中非常深的目录。但是当切换到Windows时,Windows资源管理器不允许访问位置太深的目录,即路径名太长。

此外,Windows资源管理器似乎无法访问在Ubuntu下创建的文件和董事会,目录和文件名中包含特殊字符。

我想知道什么可以解决Windows中的问题?例如,是否有其他替代软件来替换Windows资源管理器?


1
您使用什么文件系统用于共享分区(FAT32,NTFS)?
James P

1
@James:ntfs ...
Tim

我会问为什么你需要这个长度的路径或深度?解决任何导致你达到259限制的事情可能比让Windows解决它更容易。
cjb110

Answers:


29

虽然NTFS允许大约32,000个字符的路径,但你已经找到了 Win32 API的259个字符的路径长度限制

在Windows API中([链接文档]中讨论了一些例外),路径的最大长度为 MAX_PATH,定义为260个字符。

(另外还有一个 NULL 附加到路径的终止字符,为我们提供259个可用字符。)

因为Explorer(以及几乎所有其他Windows应用程序)依赖Win32 API进行文件系统访问,所以不是 实际的 绕过这个限制,即使它是 可能

Windows API具有许多函数,这些函数也具有Unicode版本,以允许扩展长度路径,最大总路径长度为32,767个字符。这种类型的路径由用反斜杠分隔的组件组成,每个组件都取决于返回的值 lpMaximumComponentLength 的参数 GetVolumeInformation function(此值通常为255个字符)。要指定扩展长度路径,请使用“\\?\”前缀。例如,“\\?\ D:\ 很长的路 ”。

不幸的是,你不能只打字 \\?\D:\very long path 进入资源管理器窗口。应用程序必须设计为利用这些API并处理非常长的路径名。

在Windows下访问扩展长度路径的一种方法是安装 Cygwin的 ,Windows的* nix仿真层。在我的测试中,Cygwin似乎没有受到限制 MAX_PATH; bash和vi在路径长度为2,000个字符时没有问题。

请记住,即使您可以使用bash浏览扩展长度的路径,您也可能无法在常规Windows应用程序中打开这些路径中的文件。例如,输入 notepad 而工作目录是一个扩展长度的路径得到你

错误:当前工作目录的路径长于Win32工作目录允许的路径。无法从此处启动本机Windows应用程序。

并尝试 notepad "\\?\D:\very long path\file.txt" 也不起作用;它发布了,但只是说 “找不到文件......”试着用同样的东西 记事本+ + 崩溃了。 (可能是缓冲区溢出。)

访问深度在扩展长度路径中的特定文件的另一种选择是 缩短路径本身 通过创建NTFS 结点 。从提升的命令提示符:

D:\> mklink /J jct "\\?\D:\very\long\path"

您现在可以访问的内容了 D:\very\long\path\D:\jct\。你不会遇到任何路径长度问题,因为就资源管理器和其他应用程序而言,路径就是这样 D:\jct\ (管他呢)。 NTFS驱动程序处理透明地重定向路径(“重新分析点”)。

这种方法的缺点显然是你必须在你想要访问的文件附近创建一个联结;你仍然不能简单地浏览整个目录结构。

关于特殊字符( " * : < > ? \ | ),这只是一个禁忌。这些字符在Windows中具有特殊含义,因此无法在路径中使用它们。 (Cygwin允许您创建具有特殊字符的文件,但它是通过 替换字符 使用特殊的Unicode字符,然后在阅读时替换回来。在Linux或Explorer中查看这些Cygwin创建的文件看起来不正确,因为Unicode字符不会被替换回来。)


所有这些都说,你在做什么需要很长的路径?也许你可以通过重新评估你正在做的事情并避免长途径来让你的生活更轻松。你有机会 不管怎么说都不需要很长的路径


似乎这个答案说“没有软件能够满足您的需求”但不能明确表达
Aaron

5

如果您喜欢文本模式应用程序,那么您可能会对FAR Manager感兴趣,因为我发现它可以支持比Windows资源管理器更深入的目录结构(尽管底层Windows操作系统本身仍然存在一些限制)。

这是一个原生的32位/ 64位Windows应用程序,与Norton Commander(从DOS是PC上操作系统的最高统治者的时代)一样,专注于目录(a.k.a。,“文件夹”)和文件管理。

我甚至看到有关它被用作Windows资源管理器的替代品的报道,但我没有尝试过这个,因为我在将它用作应用程序的环境中非常满意。 下面的屏幕截图包含右侧的“目录树”功能,通过按F9(菜单栏),然后按“R”(右侧面板菜单),然后按“T”(树面板模式)激活,这可能是你特别感兴趣的......

FAR经理(免费和开源)
http://www.farmanager.com/

enter image description here


谢谢! (1)我之前尝试过FAR。有两个问题。我觉得我的眼睛深蓝色,所以可以改变吗?此外,我想知道如何选择一个应用程序来打开一个文件,该文件可能无法识别或在几个不同的应用程序中打开。 (2)我发现不仅Windows资源管理器而且其他软件都有太长的路径名。例如,在Firefox中,我想将网页保存到目录中,如果名称或路径名太长,我仍然无法打开该目录。 Firefox还依赖Windows资源管理器吗?我怎样才能解决这个问题呢?
Tim

是的,颜色可以更改:F9(菜单栏),“O”(选项菜单),“L”(颜色)。
Randolf Richardson

我不完全理解关于“......如何选择打开文件的应用程序......”的第二个问题,但是如果你在文件上按Shift-Enter,它将依赖Windows的文件关联打开它(而不是试图找到内置功能或FAR管理器插件来处理它)。
Randolf Richardson

对于你的上一个问题,我注意到FAR Manager似乎能够处理略长的路径。我不确定为什么会这样,但我怀疑你遇到的问题可能是Windows操作系统本身的限制。
Randolf Richardson

1
使用Shift-Enter,这将导致Windows尝试打开它;因为它将无法识别,您将看到通常的提示选择一个应用程序。
Randolf Richardson

4

有一些替代品,但我没有检查目录的深度。

我试过了 Explorer ++ ,开源和便携式

Explorer ++ screenshot

目前正在使用 立方资源管理器 ,也是开源:

Cubicexplorer screenshot


谢谢!我发现不仅Windows资源管理器而且其他软件都有太长的路径名。例如,在Firefox中,我想将网页保存到目录中,如果名称或路径名太长,我仍然无法打开该目录。 。 Firefox还依赖Windows资源管理器吗?我怎样才能解决这个问题呢?
Tim

1
@Tim:您可能遇到了Windows本身设计的限制。我也注意到DOS提示甚至有很长路径的问题,虽然我可以通过使用那些丑陋的“8.3风格”路径名来更深入(例如,“C:/ PROGRA~2 / SPYBOT~1 /”) 。然而,一个很好的功能是将这些较短的8.3路径名与较长的路径名混合似乎在大多数应用程序中都能正常工作。
Randolf Richardson

@Randolf:谢谢!我已经尝试过你和Juhele的帖子中推荐的软件。除了FAR,非他们可以访问长路径,而FAR可以打开这样的目录,它不能打开它下面的文件。 Windows操作系统固有的长路径问题,无论浏览目录的程序是什么?如果是的话,是否意味着无法绕过它?
Tim

@Tim:我相信你已经证实了Windows本身的限制问题。您可以使用FAR Manage查看文件(突出显示文件后的F3键)吗?那么使用Enter(没有Shift)呢? (如果您可以查看它,那么您也可以将其复制到Windows可以使用它的另一个位置 - 虽然这很乏味,但它至少可以访问该文件。)
Randolf Richardson

4
我刚试过Explorer ++和Cubic Explorer。但两者似乎都不支持长路径名称。
xaedes

1

我试过了 7-Zip文件管理器 它看起来很好用很长的路径。


辉煌!我在电脑上隐藏的宝石,只是没想到尝试。额外奖励:我在网络共享上有很长的路径 - 我注意到7 Zip文件管理器上的性能比Windows资源管理器上的慢性能快
Omaer

0

你有没有尝试过 总指挥官 ?这是共享软件。它似乎处理长路径名,一般来说是一个非常有用的文件管理器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.