none
windows7 文件名识别中的重大BUG~~~~~~~~ RRS feed

  • 问题

  • 今天把一堆文件备份
    其中在一个文件夹中包括内容完全不同的如下两个文件
    文件1:2009-03-08-***X.pdf
    文件2:2009-0~1.pdf

    其中文件名2是大家比较熟悉在dos界面下由于主文件名只支持8个字符
    因此在超过8字符时将第6个字符以后的全部字符命名为“~1”

    由于原来是在XP下保存的资料 并多次拷贝备份未出现任何问题提示
    但在刚刚安装的win7上拷贝时出现了“相同文件名的提示”,并
    给出3个选项:
    1)替换成 文件2
    2)不替换 仅保留文件1
    3)两者都保留 但将文件2命名为2009-0~1(2).pdf

    虽然选择选项3)时不会造成文件丢失,但是也会造成文件名的改变,
    而且由于文件好久未动过,在拷贝过程中出现这样的提示,让我感觉
    到很费解,根本不知道出了什么问题 如果一旦选择选项1)就会丢失
    文件。我想大家应该能够意识到这个问题的严重性。


    win7到底是进步了还是退化了?难道拷贝是基于原始的dos进行的么?
    在不断强调安全性的今天,连简简单单的复制-粘贴都不能保证安全
    OMG!!

    win7下,一些软件不能支持可以理解,稍等一段时间就会有软件更新解决
    但这个“复制的问题”,是微软自己的问题,不知何时才能搞定了,
    对win7失望了。。。。 




    2010年3月9日 16:56

答案

全部回复

  • 还有呢,格式化NTFS的时候没有选项禁止短文件名。
    2010年3月9日 23:28
  • How to Disable Automatic Short File Name Generation
    http://support.microsoft.com/kb/210638/

    Command Prompt's Treatment of Long File Extensions
    http://support.microsoft.com/kb/164351/
    Folding@Home
    2010年3月10日 1:00
  • 今天把一堆文件备份
    其中在一个文件夹中包括内容完全不同的如下两个文件
    文件1:2009-03-08-***X.pdf
    文件2:2009-0~1.pdf

    其中文件名2是大家比较熟悉在dos界面下由于主文件名只支持8个字符
    因此在超过8字符时将第6个字符以后的全部字符命名为“~1”

    由于原来是在XP下保存的资料 并多次拷贝备份未出现任何问题提示
    但在刚刚安装的win7上拷贝时出现了“相同文件名的提示”,并
    给出3个选项:
    1)替换成 文件2
    2)不替换 仅保留文件1
    3)两者都保留 但将文件2命名为2009-0~1(2).pdf

    虽然选择选项3)时不会造成文件丢失,但是也会造成文件名的改变,
    而且由于文件好久未动过,在拷贝过程中出现这样的提示,让我感觉
    到很费解,根本不知道出了什么问题 如果一旦选择选项1)就会丢失
    文件。我想大家应该能够意识到这个问题的严重性。


    win7到底是进步了还是退化了?难道拷贝是基于原始的dos进行的么?
    在不断强调安全性的今天,连简简单单的复制-粘贴都不能保证安全
    OMG!!

    win7下,一些软件不能支持可以理解,稍等一段时间就会有软件更新解决
    但这个“复制的问题”,是微软自己的问题,不知何时才能搞定了,
    对win7失望了。。。。 





    您能确定文件2的实际长文件名和文件1确实是不同的吗?我实验一下看看去。
    2010年3月10日 5:42
  • 今天把一堆文件备份
    其中在一个文件夹中包括内容完全不同的如下两个文件
    文件1:2009-03-08-***X.pdf
    文件2:2009-0~1.pdf

    其中文件名2是大家比较熟悉在dos界面下由于主文件名只支持8个字符
    因此在超过8字符时将第6个字符以后的全部字符命名为“~1”

    由于原来是在XP下保存的资料 并多次拷贝备份未出现任何问题提示
    但在刚刚安装的win7上拷贝时出现了“相同文件名的提示”,并
    给出3个选项:
    1)替换成 文件2
    2)不替换 仅保留文件1
    3)两者都保留 但将文件2命名为2009-0~1(2).pdf

    虽然选择选项3)时不会造成文件丢失,但是也会造成文件名的改变,
    而且由于文件好久未动过,在拷贝过程中出现这样的提示,让我感觉
    到很费解,根本不知道出了什么问题 如果一旦选择选项1)就会丢失
    文件。我想大家应该能够意识到这个问题的严重性。


    win7到底是进步了还是退化了?难道拷贝是基于原始的dos进行的么?
    在不断强调安全性的今天,连简简单单的复制-粘贴都不能保证安全
    OMG!!

    win7下,一些软件不能支持可以理解,稍等一段时间就会有软件更新解决
    但这个“复制的问题”,是微软自己的问题,不知何时才能搞定了,
    对win7失望了。。。。 





    首先,Windows自动生成短文件名是为了兼容性考虑。毕竟哪怕在今天还是会有人会愿意在Windows7上面运行很老的程序的。至于楼主的这个问题我的理解是这样的。

    在拷贝这两个文件的时候。如果先拷贝的是文件2,那么在拷贝文件1的时候会自动生成2009-0~2.pdf作为短文件名。
    如果先拷贝的是文件1,那么自动生成的短文件名就是2009-0~1.pdf。这样在拷贝文件2的时候就会报错。

    所以楼主的问题可能就是由于两个系统默认拷贝文件的顺序不同造成的。
    2010年3月10日 8:10
  • 如果不擔心兼容性問題, 那麼用第一個 KB 所提供的方法, 禁用短文件名.
    至於第二個 KB 所提供的方法, 視實際需要看是否應用.

    如果有文件被覆蓋, 可以嘗試用恢復軟件進行恢復.

    Recuva
    http://www.piriform.com/recuva/download

    P.S. 至於被寫覆蓋的文件能否恢復, 因為我並沒有進行過此類操作,  不好說恢復的可能有多大,  只有自己試試, 同時記住關鍵一點不要再往丟失文件的卷寫入數據.
    Folding@Home
    2010年3月10日 8:56
  • I tried to change the VALUE of  NtfsDisable8dot3NameCreation to "1" (the default value is "2")
    now I can copy the FILE 1 & FILE 2 together without the CAUTION. TKS!!

    but to the 2 files in same folder:
    FILE 1: 2009-03-08-***X.pdf
    FILE 2: 2009-0~1 (2).pdf

    I cannot rename the FILE 2 to "2009-0~1.pdf"

    sigh~~~~
    2010年3月10日 13:48
  • I tried to change the VALUE of  NtfsDisable8dot3NameCreation to "1" (the default value is "2")
    now I can copy the FILE 1 & FILE 2 together without the CAUTION. TKS!!

    but to the 2 files in same folder:
    FILE 1: 2009-03-08-***X.pdf
    FILE 2: 2009-0~1 (2).pdf

    I cannot rename the FILE 2 to "2009-0~1.pdf"

    sigh~~~~

    这是因为你的File1已经有一个短文件名了。可以考虑:

    1。 把File1转移到另一个硬盘上再拷贝回来
    2。 把File1的文件名改一下再改回来

    要查看现有的短文件名,可以用Dir /x命令。

    Note from the KB:

    Existing files using the short name format will still be available to 32-bit programs, but all files created after this change is implemented will be unavailable to older 16-bit programs.
    2010年3月11日 6:04