在使用FSO操作一个文件时,发现此文件的路径中如果有中文或者是空格存在,就会报错,如何解决?
如文件A.txt放在“D:\我的文件夹”或者是放在“D:\csdn net”,这时候使用FSO的方法读取a.txt中的内容时,就会报运行期错误,请指教如何解决?谢谢。

解决方案 »

  1.   

    '原因:部分函数不支持汉字文件名和长文件名,需要进行转换,采用对应的短文件名进行操作。'声明:
    Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long'应用:    Dim PathName As String, S As String
        Dim ShortPathName As String    PathName = "D:\csdn net"
        
        S = String(LenB(PathName), Chr(0))
        GetShortPathName PathName, S, Len(S)
        ShortPathName = Left(S, InStr(S, Chr(0)) - 1)
      

  2.   

    抱歉,PathName = "D:\csdn net"应为
    PathName = "D:\csdn net\A.txt"
      

  3.   

    请将文件的完全路径用双引号扩起来再试试。
    filename="""" & "D:\csdn net\a.txt" & """"
      

  4.   

    不可能啊,我用fso从来没遇到过这问题
      

  5.   

    同意MSTOP(陈建华(东莞立晨企资)) ,这样应该就可以解决了
      

  6.   

    kissoflife(明月高楼休独倚,酒入愁肠,化作相思泪!)
    谢谢你的回复,我测试了一下,你的办法厉害。行得通。
    但你的代码我没有调试通过。
     douhapy(双喜) 
    你的办法,我测试没有通过。可能是我的办法不正确。再次感谢以上大师