如果您曾见过此问题,则可能对您来说是一个简单的解决方法。如果您已多次看到此错误,那么您也知道有时可能会遇到复杂的问题。
希望您只会遇到简单的修复程序,但是我们将为您准备一些不太容易的修复程序,保证也可以进行修复。
为什么文件名长度在Windows中甚至是一个问题?
文件名长度的悠久历史对于Windows之类的操作系统来说是一个问题。有时候您的文件名不能超过8个字符,而且文件扩展名不得超过3个字符。您能做的最好的事情就是myresume.doc。这是文件系统设计的限制。
随着新版本Windows的出现,情况变得更好。我们从一个有限的旧文件系统过渡到一个称为新技术文件系统(NTFS)的文件系统。 NTFS使我们知道文件名的长度可以为255个字符,并且文件路径的长度可能多达32,767个字符。那么我们怎么可能会有太长的文件名呢?
Windows具有称为系统变量的内容。这些是Windows赖以运行的变量,因为Windows始终知道变量的含义以及它们的位置,即使我们到处移动字节和字节也是如此。系统变量MAX_PATH是将文件名和文件路径限制在260个字符以内的变量。
作为变量,您认为我们可以对其进行更改。不,我们不应该。这就像从毛衣中拉出一条线。一旦一个系统变量更改,其他依赖于它们的系统变量和组件就开始解散。
<!-In_content_1全部:[300x250] / dfp:[640x360]->
那么我们该如何解决?
简易修复
如果幸运的话,您将获得错误,并确切知道引起该问题的文件名。或至少在哪里找到文件。也许您的文件名看起来像这样:
C:\User\guymc\Documents\My Resumesresumewithanamesolongthatitcausesproblemsandbecomespartofsomeguysarticleonthewebhowdoyoulikemenow.docx
在这种情况下,显然谁是罪犯。在Windows 10中调用的Windows资源管理器或文件资源管理器中找到文件,单击一次,单击F2重命名,然后将该傻文件名更改为更合理的名称。问题已解决。
不太容易解决的问题
解决此问题并不总是那么容易。有时,由于某种原因,您可能无法更改文件或目录的名称。
以下解决方案将为您解决问题。他们并不难。
使用PowerShell移动,删除或复制文件或目录
有时,在尝试移动,删除或复制文件路径的字符数超过260的目录时,会出现错误。 / p>
请注意,目录和文件夹一词可以互换。我们将继续使用“目录”。以下PowerShell cmdlet也可以在文件上使用。
也许文件路径看起来像:
C:\Users\guymc\Documents\This\Is\Exactly\The\Precise\Directory\Path\That\I\Need\To\Have\To\Keep\My\Files\Sorted\In\A\Manner\That\Makes\Sense\To\Me\So\Lets\Pretend\This\Is\An\Actual\Filepath\That\You\Might\Also\Have\On\Your\Windows\Computer\And\Not\Over\Think\It\Document.docx
该文件路径长280个字符。因此,我们无法使用普通的复制粘贴方法将目录从那里复制到其他地方。我们收到目标路径太长错误。
让我们假设由于某种原因,我们无法重命名嵌套文件的目录。我们该怎么办?
打开PowerShell。如果您尚未使用PowerShell,请欣赏我们的文章对家庭用户使用PowerShell –入门指南 。不过,您可以不阅读本文即可进行下一步。
打开PowerShell时,您将位于用户目录的根目录下。假设C:\ Users \ guymc是您的用户目录。
名为This的目录位于Documents 目录。要移至Documents目录,我们使用DOS命令cd Documents。
您会看到提示更改为C:\ Users \ guymc \ Documents。那很好。我们正在靠近目录,这将使事情变得更容易。
使用Copy-Item复制目录
我们要复制目录此及其内容放入ThatNewFolder。让我们将PowerShell cmdlet 复制项与参数-目标和-递归一起使用。
-Destination告诉PowerShell我们要将副本放在哪里。 -Recurse告诉PowerShell将其中的所有项目复制到目标位置。复制将原件保留在原处,并在目的地中放置所有新原件。
复制此项目-Destination ThatNewFolder -Recurse
使用Move-Item移动目录
假设我们要将目录This及其所有目录和文件移动到ThatNewFolder。移动不会将原件留在原地。
我们可以将PowerShell cmdlet 移动项与参数-路径和-目标一起使用。 -Path定义我们要移动的项目,-Destination告诉PowerShell我们想要的位置。
该cmdlet会将其放入ThatNewFolder中。它还将移动“此”目录内的所有内容。 Move-Item可用于移动文件或目录,并且不管文件路径或文件名长度如何都可以使用。
移动项-Path This -Destination ThatNewFolder
为确保其有效,请使用cd ThatNewFolder命令进入ThatNewFolder。然后使用dir命令列出ThatNewFolder中的目录。您会看到此目录在其中。
使用Remove-Item删除目录
如果我们要删除此目录及其中的所有内容,我们将使用Remove -Itemcmdlet。
Remove-Item cmdlet具有一些内置的安全性,因此很难删除其中包含目录的目录。在我们的示例中,我们知道我们要删除所有内容,因此我们将使用参数-递归使其删除内部的所有内容,并使用参数-Force使其不执行任何操作询问我们是否确定里面的每个物品。
请注意!恢复以这种方式删除的任何内容将非常困难。您可以在 如何恢复意外删除的文件 中尝试使用这些方法,但不要期望太多。
删除-项目This -Recurse -Force
您可以再次使用dir命令确保它消失了。
使Windows 10接受长文件路径
如果您知道将要反复使用长文件路径和长文件名,那么使Windows为您工作会更容易。每天使用PowerShell进行工作都是没有意义的。
我们有两种方法可以做到这一点。一个用于Windows 10家庭版用户,另一个用于Windows 10专业版或企业版用户。这些方法可能适用于Windows 8.1或更早版本,但是我们不能保证。
使Windows 10 Home接受长文件路径
要使Windows 10 Home接受长文件路径,我们需要打开注册表编辑器。如果您以前从未在注册表编辑器中工作过,请保持谨慎。不小心删除或更改此处的内容可能会使Windows无法完全工作。
在进行任何更改之前,请始终对注册表进行备份。在我们的 备份和还原Windows注册表的终极指南 中了解所有您需要了解的内容。
一旦打开注册表编辑器并进行了备份,请导航至位置HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FileSystem,然后找到键LongPathsEnabled。
双击LongPathsEnabled。在值数据:字段中,确保其中有数字1。点击确定以提交更改。
退出注册表编辑器,您现在应该可以使用疯狂的长文件路径。
使Windows 10 Pro或企业版接受长文件路径
要允许Windows 10 Pro或企业要使用长文件路径,我们将使用组策略编辑器。这个工具可让我们设定Windows在电脑和使用者层级的运作方式政策。
我们有几篇关于使用组策略执行诸如 禁用或启用Internet Explorer选项 或 向登录屏幕添加消息 之类的文章。
转到开始菜单并输入gpedit,以打开组策略编辑器。最佳结果应该是编辑组策略。双击它。
打开组策略编辑器后,导航至计算机配置>管理模板>系统>文件系统。在那里,您将看到策略启用Win32长路径。
双击它以编辑策略设置。将其从Disabled禁用为Enabled,然后单击OK按钮提交更改。
该政策可能不会立即生效。您可以 强制更新组策略 。
就这样
还有其他一些方法可以解决长文件名和文件路径,但是我们这里经历的是最简单,最有效的方法。