为什么windows报告此文件夹太长而无法复制?

如果您使用Windows的时间足够长,特别是使用名称较长的文件夹和文件,您将遇到一个奇怪的错误:Windows将报告文件夹路径或文件名太长,无法移动到新目标,甚至无法删除。怎么回事?...

为什么windows报告此文件夹太长而无法复制?

如果您使用Windows的时间足够长,特别是使用名称较长的文件夹和文件,您将遇到一个奇怪的错误:Windows将报告文件夹路径或文件名太长,无法移动到新目标,甚至无法删除。怎么回事?

Hey How-To Geek!

So the other day, I was reorganizing some files on my computer, creating folders, that kind of stuff. Then, when I was moving some files into a folder, I get a message, stating that the resulting folder path would be too long. I was confused. I know that every single OS since DOS supports Long Filenames, yet Windows claims that the path is too long? Why does this happen?

Sincerly,

Mr. Disorganized

您遇到的问题是两个系统的不幸交叉,在这种情况下,会产生错误。为了准确地了解错误的来源,我们需要在深入研究解决方案之前深入了解长文件名(LFN)的历史以及Windows如何与它们交互。

在Windows95中,通过底层的MS-DOS体系结构引入了长文件名。新的LFN系统允许文件名和目录名最多255个字符。这是以前的文件名系统的一个受欢迎的扩展,通常称为8.3文件名,因为名称被限制为8个字符和3位扩展名,但也被称为短文件名(SFN)。你可以想象,当时仍然有很多基于DOS的应用程序在使用,而要让新的lfn和旧的sfn更好地相互配合,还有很多麻烦。如果你曾经遇到过一张旧的软盘或CD-ROM,上面有奇怪的被截断的文件(比如abcdef~1.txt),那么这个文件名是由一些SFN使用旧的应用程序从一些较长的、不受支持的LFN(比如wen jian efghijk.txt文件).

然而,我们离上世纪90年代中期还有很长的路要走,而且整个文件名过长的问题(大部分)已经被彻底解决了。如果您运行的是过去10年的Windows版本,您可能从未遇到过文件名长度冲突,就像我们在DOS/windows95时代遇到的那样。也就是说,正如您在磁盘清理项目中发现的那样,我们仍然会遇到问题。但为什么呢?如果Windows的长文件名系统支持文件夹和每个组件最多255个字符的文件名,那么您将遇到什么样的墙?我们不能责怪NTFS(大多数现代Windows机器使用的文件系统),因为NTFS将支持文件夹和文件名的链接,总路径长度可达32767个字符。这远远超过了大多数用户需要的典型目录结构。

在LFN/NTFS系统之上的Windows堆栈中存在一个人为的限制:MAX\u PATH变量。MAX\u PATH变量指定Windows中完整的目录结构的总字符数不能超过260个,包括驱动器号、冒号、反斜杠和结尾处的空反冲。因此,您只有一个256个字符的潜在实际最大路径,例如C:\your-256-character-PATH\。

因此,当您清理计算机时发生的情况是,您有一个路径已经很长的目录(可能是因为文件夹名很长,文件名很长,或者两者都很长),当您试图将其中一个或多个目录移动到另一个路径很长的目录中时,路径名的总长度超过了MAX\ U path变量施加的260个字符的限制。

现在,你可能在想“啊哈!我们只需更改MAX\u PATH变量就可以解决问题!“唉,没那么简单。MAX\u PATH变量不仅本质上是硬编码到Windows中的,而且即使您经历了修改它的巨**烦,您最终也会破坏太多,这是不值得的。太多的应用程序期望path变量是Windows长期指定的变量。我们不能在不造成巨大混乱的情况下改变它。

你还剩下什么?最简单的解决方案就是编辑路径数据。例如,如果您有大量已保存的文章,而用于从web保存这些文章的应用程序/扩展程序创建了一个目录,该目录是文章的完整标题+文章导语,那么文件名本身就是文章的完整标题+文章导语,只需一次保存,就可以达到或超过最大路径。编辑那些巨大的文件夹和文章标题到一个更合理的大小是一个简单的方法来解决这个问题。

如果有大量文件的路径很长,并且您不想全部编辑这些文件(或者如果您想删除一大堆旧目录,这些目录太长,在受到MAX\u path变量限制时Windows无法处理),那么可以使用命令行解决方法。即使Windows受到MAX\u PATH变量的限制,Windows工程师也意识到,在某些情况下,用户需要处理更长的路径名。因此,windowsapi有一个处理超长路径的函数。

为了利用这个API并在笨拙的文件夹/文件名上使用命令行工具,只需在目录名后面附加几个额外的字符。例如,如果您有一个要删除的庞大目录结构(但在尝试删除时由于路径长度而收到错误),则可以从以下位置更改命令:

rmdir c:\documents\some-really-super-long-folder-name-scheme\

收件人:

rmdir \\?\c:\documents\some-really-super-long-folder-name-scheme\

关键是增加了\ \?\文件路径开始之前的部分;这指示Windows忽略MAX\u path变量施加的限制,并与您刚才提供的路径交互,该路径由基础文件系统直接提供/理解(它可以明显支持较长的路径)。像往常一样,在命令提示符下要小心,以避免意外删除要保持原样的文件或目录。

如果我们对这个问题的概述让您感到好奇,那么一定要深入阅读这篇来自Microsoft开发者网络库的文章,命名文件、路径和名称空间,以获得有关引擎盖下发生的事情的更多信息。


有急迫的技术问题吗?给我们发邮件询问@tl80.cn我们会尽力回答的。

  • 发表于 2021-04-08 22:52
  • 阅读 ( 130 )
  • 分类:互联网

你可能感兴趣的文章

知道何时ctrl+c无法使用此通知程序应用程序复制到剪贴板

...很简单。将ZIP文件下载到您的计算机并解压缩。解压后的文件夹只包含两个文件:一个DLL文件和一个EXE文件。双击EXE文件启动程序。 ...

  • 发布于 2021-03-13 00:33
  • 阅读 ( 108 )

无法在mac上创建windows安装程序?4故障排除提示

...台电脑或者你彻底清除了你的硬盘,你很有可能需要安装Windows。如果你买的不是光盘上的Windows,你需要创建自己的安装程序。微软已经让这一过程变得相当简单,但并不总是按计划进行。 ...

  • 发布于 2021-03-15 08:05
  • 阅读 ( 183 )

如何从无法启动的计算机备份数据

...件浏览器-它叫尼莫薄荷。在屏幕底部任务栏左侧查找其文件夹图标,然后在左侧边栏的“设备”下找到您的硬盘驱动器。它可能是唯一列出的驱动器,按名称或大小显示。如果看到多个,请单击其中一个,然后查看其中是否包...

  • 发布于 2021-03-16 04:36
  • 阅读 ( 181 )

无法删除具有长文件名的文件?只需5秒钟就能修好

... 输入DOS命令以列出当前目录中的文件和文件夹。dir命令是一个内部命令,在所有Microsoft操作系统上都可用。/X属性显示非8.3文件名的短名称。当要检查的文件太多时,还可以使用DIR/X/P暂停并从一个屏幕移动到下...

  • 发布于 2021-03-16 04:51
  • 阅读 ( 149 )

有史以来最可笑的12个错误

...别担心!我们只是想吓唬你——让你知道一切都很成功。为什么一开始就有一个关于成功的信息框呢? ...

  • 发布于 2021-03-16 17:56
  • 阅读 ( 195 )

如何修复windows update错误0x80070057

... 重命名softwaredistribution文件夹 ...

  • 发布于 2021-03-17 19:13
  • 阅读 ( 363 )

如何删除其他程序正在使用的文件

...源管理器。转到“查看”>“选项”>“更改文件夹和搜索选项”。 ...

  • 发布于 2021-03-18 06:15
  • 阅读 ( 201 )

如何在windows10中修复错误代码0x8000ffff

... 如果已经有缓存文件夹,请重命名它缓存。旧. 然后,不管它以前是否存在,创建一个名为Cache的新文件夹。最后,运行上面概述的疑难解答程序,它应该检测并解决问题。 ...

  • 发布于 2021-03-21 16:10
  • 阅读 ( 363 )

您必须知道的15个windows命令提示符(cmd)命令

命令提示符正慢慢从Windows界面上消失,这是有充分理由的:CMD命令在基于文本的输入时代是一种过时的、基本上不必要的工具。但许多命令仍然有用,windows8和windows10甚至添加了新功能。 ...

  • 发布于 2021-03-22 17:39
  • 阅读 ( 545 )

如何修复Windows10上高cpu使用率的反恶意软件服务可执行文件

...和CPU。这个过程很可能是反恶意软件服务可执行文件。当Windows Defender配置不正确或系统上存在恶意软件干扰其功能时,会出现此常见问题。 ...

  • 发布于 2021-03-26 13:41
  • 阅读 ( 304 )
xsj91990
xsj91990

0 篇文章

相关推荐