如何查找具有特定名称长度的文件或文件夹?[重复]


4

这个问题在这里已有答案:

我正在帮助我的叔叔将他的所有摄影图像从Windows机器的内部和外部硬盘驱动器转移到他新购买的NAS上,我们偶然发现了一个小问题(发生在'只有'3.000个文件......),称为'文件名/文件夹名字太长,无法复制'。所以..我正在寻找一个可以找到所有具有特定名称长度的文件的应用程序。

Windows资源管理器可以按名称,类型,大小等进行搜索,但据我所知,它无法按名称长度进行搜索。因此,我正在寻找一个可以这样做的应用程序。

注意:这可能是一个提示命令,可以简单地导出结果。


奖金!也适用于命令提示符:从同一个应用程序更改文件/文件夹名称!实际上不需要破折号,点数和空格,可以缩短名称,因此也许可以转移!


将文件夹名称缩短为这些图片,也许您不需要在执行此操作后找出哪些文件名太长。Windows对名称的限制为255个字符,包括路径名。如果文件的整个路径包含更多字符,则在复制时会收到错误消息。
daraos 2016年

需要了解这是否也适用于Synology的操作系统,因为那是目标文件夹。谢谢,聪明!
Sander Schaeffer 2016年

我已经做了类似的c:\blah>dir /s/b>a.a 事情获取文件中所有文件名的列表a.a,然后a.a在记事本中打开文件并关闭自动换行并向右滚动并向下滚动,您会看到最长的路径。您也可以在记事本++中打开它,并寻找按行长度排序的方法。
barlop 2016年

对不起,我真的不知道你在说什么,@ barlop ..
Sander Schaeffer

Answers:


5

Windows资源管理器以及.NET Framework应用程序存在超过260个字符的路径问题(请参阅此处:https : //stackoverflow.com/questions/1880321/why-does-the-260-character-path-length-limit-存在于窗口中

你可以做些什么来绕过这个只是通过使用subst.exe将它映射到驱动器号来简化路径,如下所示:

subst.exe <DriveLetter>: <super long path without trailing backslash>

例:

subst.exe A: C:\users\%username%\appdata\local\temp

这会将我的超长路径(C:\users\%username%\appdata\local\temp在本例中)映射到驱动器号A:因此将路径长度减少超过20个字符。这也适用于NAS上的UNC路径。

该驱动器在Windows资源管理器中可见,因此您只需打开命令行即可映射驱动器。当您注销/重启PC时,它将自动取消映射。


1

我会快速解决你的问题。

您的filespecs(8.3文件名和文件夹名称的组合)超过了255个字符的限制。这可能是由于深层嵌套文件夹造成的。

对于无法移动的文件,将其文件夹移动到驱动器的根目录,然后执行传输操作。它现在应该工作。


如果新路径在255个字符限制范围内,这可能会起作用,这很可能..但目标路径可能必须更改。文件名可能比它应该的长。
barlop 2016年

快速思考:由于此错误而无法复制的大多数文件都位于内部NTFS驱动器上。每个文件都没有问题留在那里,这带来了我的想法:如果他们没有问题,那么255个字符限制不适用于他们,所以在将它们移动到其他地方时不应该是问题。或者我该怎么看?
Sander Schaeffer 2016年

@SanderSchaeffer它可能有一个文件存在,其路径超过255限制,但然后无法复制它。你问一个有效的问题,它是如何实现的,也许可以重命名文件或创建超出限制的文件,但是在复制它时会有问题。虽然只是Windows资源管理器复制和其他一些问题,但可能有一种方法可以复制它。例如,根据这个,robocopy可以做到stackoverflow.com/questions/29865863 / ...
barlop 2016年

这取决于每个应用程序的编写方式。某些应用程序(例如使用.NET编写的应用程序)有其自身的限制(260个字符)。
RockPaperLizard 2016年
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.