如果你用OpenDialog组件打开一个文件,得到是全路径名
但是在Win2000下这个全路径名是Windows扩展模式的
也就是说,比如打开Abc.TXT得到路径是D:\Program Files\Microsoft Office\Office\
如何才能得到兼容DOS的路径格式呢?比如上述例子中Abc.TXT的DOS兼容路径应该是:
D:\PROGRA~1\MICROS~2\Office\
这个问题主要出现在我的一个程序当中,主要是我采用创建进程CreateProcess办法来实现对Word的调用,语句如下
if CreateProcess(nil,PChar(CurDir), nil, nil, False,
NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo)=FALSE then ...
这里CurDir是命令行,定义为String类型,如:
CurDir:='D:\Program Files\Microsoft Office\Office\winword.exe C:\Abc.Doc '
就可以执行通过。 但是如果后面的文档参数是Windows扩展路径格式的,那就会调用失败。
进程创建的时候不会报告错误信息,但是进入Word界面后,Word会报告文件打开失败
通过实现,我发现主要原因是ABC.DOC的路径里不能含有空格,如下面就会出错:
D:\Program Files\Microsoft Office\Office\winword.exe C:\My Document\Abc.Doc
因为在My Document这个目录名中有1个空格请问这该如何解决呢?
请问怎么解决?
但是在Win2000下这个全路径名是Windows扩展模式的
也就是说,比如打开Abc.TXT得到路径是D:\Program Files\Microsoft Office\Office\
如何才能得到兼容DOS的路径格式呢?比如上述例子中Abc.TXT的DOS兼容路径应该是:
D:\PROGRA~1\MICROS~2\Office\
这个问题主要出现在我的一个程序当中,主要是我采用创建进程CreateProcess办法来实现对Word的调用,语句如下
if CreateProcess(nil,PChar(CurDir), nil, nil, False,
NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo)=FALSE then ...
这里CurDir是命令行,定义为String类型,如:
CurDir:='D:\Program Files\Microsoft Office\Office\winword.exe C:\Abc.Doc '
就可以执行通过。 但是如果后面的文档参数是Windows扩展路径格式的,那就会调用失败。
进程创建的时候不会报告错误信息,但是进入Word界面后,Word会报告文件打开失败
通过实现,我发现主要原因是ABC.DOC的路径里不能含有空格,如下面就会出错:
D:\Program Files\Microsoft Office\Office\winword.exe C:\My Document\Abc.Doc
因为在My Document这个目录名中有1个空格请问这该如何解决呢?
请问怎么解决?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货