Open strSource For Binary Access Read Lock Write As #1
Open strDestination For Binary Access Write Lock Write As #2
        Get #intSourceFile, , BUFFER
        Put #intDestinationFile, , BUFFER

解决方案 »

  1.   

    不行啊
    Dim buffer As String * 1
    CommonDialog1.ShowOpen
    Open CommonDialog1.FileName For Binary Access Read Lock Write As #1
    CommonDialog1.ShowSave
    Open CommonDialog1.FileName For Binary Access Write Lock Write As #2
    Get #1, , buffer
    Put #2, , buffer
    我用这样也不行Dim buffer As String * 1
    CommonDialog1.ShowOpen
    Open CommonDialog1.FileName For Binary As #1
    CommonDialog1.ShowSave
    Open CommonDialog1.FileName For Binary As #2
    Get #1, , buffer
    Put #2, , buffer
      

  2.   

    不能用String!
    会有UniCode转化的问题
    应该用Byte数组
    读取:
    Dim TempFile As Long
    Dim LoadBytes() As ByteTempFile=FreeFile
    Open 文件名 For Binary As #TempFile
    Redim LoadBytes(1 To Lof(TempFile)) As Byte
    Get #TempFile,,LoadBytes
    Close TempFile'Text1.Text=StrConv(LoadBytes,vbUniCode)写入:
    Dim TempFile As Long
    Dim SaveBytes() As Byte'SaveBytes=StrConv(Text1.Text,vbFromUniCode)
    SaveBytes=LoadBytesTempFile=FreeFile
    Open 文件名 For Binary As #TempFile
    Put #TempFile,,SaveBytes
    Close TempFile
      

  3.   

    zyl910(910:分儿,我来了!) 的方法很好啊,要读任何文件格式的文件读写,不能用string,要用字节数组的
      

  4.   

    "Dim buffer As String * 1"为什么是1?你改为非0偶数试试。
      

  5.   

    String * 1并不代表一个字节!!!
    而是一个UniCode字符如果读取的字节的ASCII码<=127,会认为那是一个单字节字符,把该字节读取到该字符串
    如果读取的字节的ASCII码<=127,会认为那是一个双字节字符,把该字节及下一个字节读取到该字符串所以会有偏差
      

  6.   

    Public Sub MyCopy(SFile As String, DFile As String)
        Dim TempFile As Integer
        Dim TempBytes() As Byte
        Dim FileLen As Long
        
        TempFile = FreeFile
        
        Open SFile For Binary As #TempFile
        FileLen = LOF(TempFile)
        ReDim TempBytes(1 To FileLen)
        Get #TempFile, , TempBytes
        Close #TempFile
        
        Open DFile For Binary As #TempFile
        Put #TempFile, , TempBytes
        Close #TempFile
        
    End Sub
      

  7.   

    谢谢分儿我来了,说得没错,应该用Byte:)