. : : ClassiClub ForuM : : .

会员中心 论坛帮助 日历事件 标记论坛已读
返回   精品技术论坛 » 技术论坛 » 『软件使用』

『软件使用』: 电脑软件推荐, 电脑软件使用, 经验分享



发表新主题 关闭主题
 
主题工具
yeahy
 
yeahy 的头像
核心会员
 
资 料:
注册日期: Jan 2002
帖子: 3,752 声望值: 3
精华: 0,解答: 1
#1 旧 2011-10-03, 06:52:58 默认 【求助】NTFS文件系统如何支持超过260字符的全路径
yeahy 当前离线  

win7 64位。一个种子,下载的时候,在NTFS文件系统创建了多个大概300个字符长的全路径目录。种子顺利下载完成。

但是当我想移动这些目录到另外一个硬盘时,就报:路径过长,你要么缩短一些文件名,要么换另外一个短一点的路径。选择只有:跳过或取消。

不知道有没有什么办法可以把这些目录移动到另外一个目录?

之前试过的办法:
1. 把能移动的先移动过去,然后重新挂种,让bt程序把没有移动的文件和文件夹再次下载并创建。(效果:可行。但是这次不想这么干了,想找个彻底的办法。)
2. 把超长文件名的文件夹压缩打包,移动过去后再解压。(效果:失败。解压的时候报错:无法超过260字符。)
3. 经试验,超长文件名的文件夹在原硬盘,无论再继续加长、移动到其它文件夹,都是可以的。但是移动到另外一个硬盘就不行了。

环境:win7 64位 sp1。


NTFS 本来支持 32768 个字符的路径名,但是只开放了260个字符。背景介绍:
引用:
众所周知,微软的文件系统经历了 fat->fat32->NTFS 的技术变革。且不论安全和文件组织方式上的革新,单就文件名而言,已经从古老的 DOS 8.3 文件格式(仅支持最长 8 个字符的文件名和 3 个字符的后缀名)转变为可以支持长达 255 个字符的文件名。而对于路径长度,NTFS 也已经支持长达 32768 个字符的路径名。

然而,Windows 操作系统并没有完全放开路径名长度的限制。而只开了260个字符的限制。事实上,所有的 Windows API 都遵循这个限制。因此,每当我们试图更改某一文件的文件名时,当输入的文件名长度 ( 全路径 ) 到达一定限度时,虽然文件名本身还未达到 255 个字符的限制,但是任何输入将不再被接受,这其实正是由于操作系统不允许 260 个字符(byte)的文件全路径。

实际应用中,这种 260 个字符的全路径的限制给应用开发带来了很大的不便。试想如下应用:我们希望给应用服务器增加一个本地 cache 的功能,该功能可以把远程服务器上的文件留下一个本地的副本。一个合理的实现可以把 url 映射为文件名,当 url 很长时,cache 文件的长度也会很长。当文件名长度超过 255,我们可以把映射文件名的前 255 个字符作为目录名称。但是,我们仍然无法解决 260 个字符的全路径限制。另外,如果一个应用软件的目录结构过深,很容易出现某些文件名长度(含路径)超过 260 个字符,并因此造成安装或删除的失败。
allegro
 
allegro 的头像
核心会员
 
资 料:
注册日期: May 2004
帖子: 3,664 声望值: 3
精华: 0,解答: 9
#2 旧 2011-10-03, 08:05:46 默认
allegro 当前离线  

使用8.3格式的短路径名


我是好人,虽然我从不说真话. . .
snowolf
 
snowolf 的头像
热心会员
 
资 料:
注册日期: Aug 2002
帖子: 1,452 声望值: 6
精华: 1,解答: 3
#3 旧 2011-10-03, 10:33:20 默认
snowolf 当前离线  

偶也遇到过,问题是为何不移动的时候,程序读取文件都正常?


人生,在于折腾~~~
Limpo
 
Limpo 的头像
热心会员
 
资 料:
注册日期: Mar 2001
帖子: 8,423 声望值: 5
精华: 1,解答: 18
#4 旧 2011-10-03, 22:41:09 默认
Limpo 当前在线  

微软限制了,别人还能有办法解决吗?
MacOS
 
MacOS 的头像
热心会员
 
资 料:
注册日期: Aug 2002
帖子: 13,396 声望值: 5
精华: 0,解答: 129
#5 旧 2011-10-03, 22:56:45 默认
MacOS 当前离线  

直接在软件中迁移看看,或者用第三方文件管理


HIDDEN MESSAGE LEVEL 3
14863 159357 789 159357 3245687 3684
yeahy
 
yeahy 的头像
核心会员
 
资 料:
注册日期: Jan 2002
帖子: 3,752 声望值: 3
精华: 0,解答: 1
#6 旧 2011-10-04, 01:08:00 默认
yeahy 当前离线  

引用:
作者: MacOS 查看帖子
直接在软件中迁移看看,或者用第三方文件管理
BT软件utorrent可以创建,但是没有迁移功能 :blush;
MacOS
 
MacOS 的头像
热心会员
 
资 料:
注册日期: Aug 2002
帖子: 13,396 声望值: 5
精华: 0,解答: 129
#7 旧 2011-10-04, 02:03:00 默认
MacOS 当前离线  

刚试了一下,总长270字符XCOPY能成功,只要双引号目录就行,这样说来限制应该只在EXPLORER
yeahy
 
yeahy 的头像
核心会员
 
资 料:
注册日期: Jan 2002
帖子: 3,752 声望值: 3
精华: 0,解答: 1
#8 旧 2011-10-04, 11:49:18 默认
yeahy 当前离线  

我也发现,只要原来就在超长目录里的,只要不移动出来,怎么移动都没关系。也就是说,explorer允许超长目录移动或变短,但是不允许短目录变长。

我最后的办法是:原来的目录我就不移动了,重新规划了存储结构。
往事
 
往事 的头像
高级会员
 
资 料:
注册日期: Feb 2001
帖子: 771 声望值: 3
精华: 0,解答: 4
#9 旧 2011-10-04, 19:44:40 默认
往事 当前离线  

引用:
作者: yeahy 查看帖子
BT软件utorrent可以创建,但是没有迁移功能 :blush;
utorrent可以移动文件的,选中下载的文件=>右键=>高级=>设置下载位置=>搞定。
yeahy
 
yeahy 的头像
核心会员
 
资 料:
注册日期: Jan 2002
帖子: 3,752 声望值: 3
精华: 0,解答: 1
#10 旧 2011-10-04, 22:07:35 默认
yeahy 当前离线  

呃,这样可以把超长文件名文件在新目录重新下载,但是不能把已经完好的文件移动过去吧。。。。我上面说的就是这样用
MacOS
 
MacOS 的头像
热心会员
 
资 料:
注册日期: Aug 2002
帖子: 13,396 声望值: 5
精华: 0,解答: 129
#11 旧 2011-10-04, 22:35:15 默认
MacOS 当前离线  

回窝证实,确实是EXPLORER的限制,TC也没有问题,复制删除都可以,但创建单个目录名长度还是有限制,估计就是260?
yeahy
 
yeahy 的头像
核心会员
 
资 料:
注册日期: Jan 2002
帖子: 3,752 声望值: 3
精华: 0,解答: 1
#12 旧 2011-10-05, 13:00:55 默认
yeahy 当前离线  

引用:
作者: MacOS 查看帖子
回窝证实,确实是EXPLORER的限制,TC也没有问题,复制删除都可以,但创建单个目录名长度还是有限制,估计就是260?
谢谢,以后得装个TC来用
发表新主题 关闭主题

主题工具

论坛规则  发帖规则
不可以发表主题
不可以回复帖子
不可以上传附件
不可以编辑自己的帖子
论坛启用 vB 代码
版面启用 表情符号
版面启用 [IMG] 代码
版面禁用 HTML 代码


所有时间均为北京时间, 现在的时间是 21:07:57.

本论坛带宽由迅通网络提供
SSL证书由TrustAsia提供

Copyright © 2000 - 2019 ClassiClub Forum All Rights Reserved.
粤ICP备09123456号