我做了一个文件的打开程序关联,现在碰到一个问题,如果被关联的文件放在有空格的文件夹里,就是说这个文件的绝对路径含有空格的话,就会报错.
比如,我做的.abc的打开程序关联,当然这个打开程序是我做的,如果把一个.abc文件入在桌面上双击的话,就会出错,提示C:Documents.abc无法打开,其实文名并不是Documents,只不过打开程序寻找文件路径的时候桌面的路径是C:\Documents and Settings\URER\Disktop ,程序碰到第一个空格就不读取了.
放到一般的文件夹里打开一切都是正常,就是指没有空格的路径.哪位高手能帮帮我,谢谢了!!

解决方案 »

  1.   

    请将路径加上""比如:"C:\Documents and Settings\URER\Disktop",如果你在命令行里面能打开那么程序可定能打开,为了保险访问路径一定要加""
      

  2.   

    可能我没说明白,我指的文件打开程序的自动关联,就是双击就指定的程序打开,我所做的就是往注册表里写信息,做程序关联,就是往HEKY_CLASSES_ROOT里写入要关联文件的扩展名,和关联程序的路径.不过测试的时候含有空格的路径并不好用.
      

  3.   


    //这么改吧
    string filepath=@"c:\\"Program Files\"";
    //在Program Files 文件夹上加双引号。
      

  4.   

    试试将长文件名转成短文件:
    [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
    public static extern int GetShortPathName(string path, StringBuilder shortPath, int shortPathLength);   ..........StringBuilder shortPath = new StringBuilder(80);
    GetShortPathName(longfilename, shortPath, 80);