目录结构一:
C:/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890/1234567890
目录结构二:
C:/1234567890/啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊1
各位好,我做了试验,其实是没有办法的,因为(我猜)browseinfo结构就只能存储260个
字节,如下:
unit Windows;
……
const
MAX_PATH = 260;
{$EXTERNALSYM MAX_PATH}
所以windows应该会将路径的长度控制在260以内(如在“目录结构一”的最内层目录内就
无法再建目录了),这样程序就不会得到错误的路径了,但实际上,我们是可以建长度超
过260字节的目录的(如“目录结构二”),那样,程序就无法得到正确的路径了,即使
是MS的软件如Word,我在“目录结构一”下建立了一个文本文件:“新建 文本文档.txt”,
然后要想再建个文本文件就不行了,因为“新建 文本文档 (2).txt”写不下了,同样也
无法建word文档,因为新建的word文档的名称是“新建 Microsoft Word 文档.doc”,也
写不下,我将“新建 Microsoft Word 文档.doc”重命名为“Word 文档.doc”,拷到“
目录结构一”下,双击,打不开,提示错误“找不到此文件 (C:/1234567890/1234567890/.../Word 文档.d)”,
可怪的是,“目录结构一”下的“新建 文本文档.txt”却可通过双击打开。
但以上不能的操作在“目录结构二”下却全然没有问题,呵呵呵,看来,和目录的层次似乎也有关。
另外,我也试了OpenDialog,同样,取不到大于260字节的全路径,看来要靠MS提供的方法取
长路径是不可能的了,只好祈祷,不要有这么变态的目录结构了!
呵呵呵,罗里罗嗦说了这么多,一会儿就发分!