网络驱动器上有一堆文件,位于相当深的路径上,其中大多数目录的名称很长。我认为这些最初是在有人将这组文件的根目录从本地工作站复制并粘贴到共享网络驱动器时创建的。我想象在本地工作站上打开文件没有问题,但现在它们在网络上的路径更长,当我双击时 Windows 无法打开它们。我也尝试过复制文件,并将它们重命名为更短的名称,但 Windows 也无法做到这一点。
总结
文件从某人的工作站沿着(假设的)路径如下:
C:\Documents and Settings\SomeUser\Files\RootOfLongFileNames\LongSubdirectoryName1\...\VeryLongAndDescriptiveAndSpecificFilename.xls
-----------------------------------------^
现在已经复制并粘贴到网络上,如下所示:
Q:\Dir1\Dir2\ProjectA\FilesForSomething\SomeotherDirectory\Blahblah\RootOfLongFileNames\LongSubdirectoryName1\...\VeryLongAndDescriptiveAndSpecificFilename.xls
---------------------------------------------------------------------^
并且现在路径太长,Windows XP 无法处理。
关于如何读取这些文件有什么提示吗?
答案1
尝试用 SUBST.EXE 替换路径。它随 Windows 一起提供:
C:\Users\shufler>subst /?
Associates a path with a drive letter.
SUBST [drive1: [drive2:]path]
SUBST drive1: /D
drive1: Specifies a virtual drive to which you want to assign a path.
[drive2:]path Specifies a physical drive and path you want to assign to
a virtual drive.
/D Deletes a substituted (virtual) drive.
Type SUBST with no parameters to display a list of current virtual drives.
您要做的是将链中的一个文件夹替换为驱动器号:
C:\>subst X: Q:\Dir1\Dir2\ProjectA\FilesForSomething\SomeotherDirectory\Blahblah\RootOfLongFileNames\LongSubdirectoryName1
现在可以在 X: 驱动器上访问 LongSubdirectoryName1 文件夹。完成后,你可以使用以下命令删除替换:subst X: /D
如果您一直需要它,那么请将其添加到您的登录脚本中。
另一种方法是从 Q: 所映射的位置将驱动器映射到链的下游。
答案2
您需要重命名路径中的目录名称,直到名称足够短以供操作系统访问。
我会导航到第一个可以修改其名称的文件夹并将其重命名为单个字母,然后对每个后续文件夹执行相同操作,直到找到必要的文件。
关于保留结构的必要性:在操作系统上,我们必须在一定的限制内工作,并且经常在这些参数之外操作并不好。现在任何快速解决方案都只是一个补丁,将来需要重新运行。真正的解决方案将涉及重新组织目录结构,以便不再需要这个非常长的文件夹路径/文件名问题。
答案3
路径前缀为\\?\
。请注意,这并不适用于所有应用程序。
答案4
我还成功地将子目录拖到根目录,然后使用重命名程序(我喜欢 Rename Maestro)缩短名称(例如删除最后 20 个字符),然后将子目录拖回其原始位置。当您为文件赋予了包含有用信息的长名称时,丢失这些字符并不是一件好事,但总比让文件无法访问要好。
如果您的重命名程序有该选项,您可以只缩短太长的文件名,方法是使用“从开头删除”删除文件名中的文本。例如,如果您发现文件名长度为 20 个字符是可以的,则可以只删除第 20 个字符后的文本。如果某些文件在您移动其目录之前确实打开了,则它们的名称会让您知道需要缩短多少。
此方法还可以与 Music2MyEar 的缩短目录名称的建议结合使用。
我知道这是一个老话题,涉及老旧的 XP,但问题仍然存在于 Windows 10 中。