可以试试GetShortPathName这个API,也许有用

解决方案 »

  1.   

    我的代码:
    Private Function ReadFile(ByVal strFile As String, ByRef data() As Byte) As Single
        '读取:
        Dim TempFile As Long
        Dim LoadBytes() As Byte
        TempFile = FreeFile
        Open strFile For Binary As #TempFile
        ReDim LoadBytes(1 To LOF(TempFile)) As Byte'报错
        Get #TempFile, , LoadBytes
        Close TempFile    data = LoadBytes
    End Function
    当strFile不是标准的DOS 8.3文件名时,LOF(TempFile)=0,ReDim那句话就会报错,如strFile是标准的DOS 8.3文件名时,LOF(TempFile)就会返回一个整数值(>0)
      

  2.   

    redim LoadBytes(FileLen(strFile))
      

  3.   

    To Azi03(微风轻扬):
    不行,与lof(tempfile)结果一样,都是0
      

  4.   

    我又测试了一下,发现,对于比较小的文件,文件名格式没有影响,也就是都能正确读取,但对比较大的文件,就不行.
    我用同一个WORD文档,一个取"test.doc",一个取"测试.doc",文件大小为2.56M,结果是"test.doc"可以读取,"测试.doc"不能读取
      

  5.   

    curFileNumber = FreeFile
                    ReDim curData(FileLen(lsvFileList.ListItems(i).SubItems(1)))
                    Open Trim(lsvFileList.ListItems(i).SubItems(1)) For Binary As #curFileNumber
                    Get #curFileNumber, , curData
                    Close #curFileNumber
    这是我的代码,读什么文件都没有问题
      

  6.   

    To Azi03(微风轻扬):
    我换了你的代码,结果还是不行是不是VB需要做什么设置?