我在调用WinRAR时,遇到了这样一个问题,不知道有没有人碰到过:
在winrar 命令格式中,是用空格来作为文件间隔的,而windows中有一个很特殊的文件夹Documents and Settings,winrar在运行时,会把它看成三个文件,导致出错,请问有什么解决办法?谢谢!ShellExecute(handle,'open',pchar('winrar'),pchar('a D:\ttt D:\ttt.doc),nil, SW_HIDE);
时能正确运行,

ShellExecute(handle,'open',pchar('winrar'),pchar('a D:\ttt C:\Documents and Settings\ttt.doc),nil, SW_HIDE);
就不对了!

解决方案 »

  1.   

    是不是不支持长文件名啊
    你试试:
    ShellExecute(handle,'open',pchar('winrar'),pchar('a D:\ttt C:\Docume~1\ttt.doc),nil, SW_HIDE);
      

  2.   

    谢谢!
    不过还是不行,恐怕不是长文件名问题.
    winrar错误提示是:!   无法打开 C:\documents
        系统找不到指定的文件。
    !   无法打开 and
        系统找不到指定的文件。
    !   无法打开 Settings\1.doc
        系统找不到指定的路径。
    !   没有文件被添加
      

  3.   

    呵呵,我们的处理方法一般是把要操作的文件copy到现在的目录下,然后调用rar时用相对路径
      

  4.   

    追加文件C:\Docume~1\ttt.doc到D:\ttt\a.rar中:
    ShellExecute(handle,'open',pchar('winrar'),pchar('a D:\ttt\a.rar D:\ttt.doc'),nil, SW_HIDE);
    测试通过