我要将一个jpg文件显示到图形框中,
这个文件不是一个完整文件,结果程序就死了。
有没有什么方法检测这个jpg文件是合法的文件呢?
象画图板(mspaint)它就能够说这个文件是无效的,它是怎么实现的呢?
100分相送!谢谢
成功后就结贴

解决方案 »

  1.   

    to:laviewpbt(人一定要靠自己) 
    谢谢!
      

  2.   

    简单的办法你用loadpicture 方法,能打开的是正常的,打不开的肯定不正常,捕捉它的出错信息就行了.
      

  3.   

    再附代码:Function TestPic(byval strFileIn as string) as boolean
    On Error GoTo ErrHandle:   Dim bitTmp As IPictureDisp
       Set bitTmp = LoadPicture(strFileIn)
       testPic=True
       exit function
       
    ErrHandle:
       TestPic=false
    end function当然如果文件不存在也会出错,具体出错是哪个代码指定一下就行了,你可以自己试试.
      

  4.   

    to : langkew(拉倒) 
    谢谢你的方法。
    我也是用Loadpicture
    直接载入的,
    但是如果这个文件本来是jpg文件,只是当时生成这个JPG文件时,文件只写了一半,
    也就是这个文件并不是一个完整文件。
    用Loadpicture时还是会出现死机的现象。
    有没有其它更好的方式呢!
      

  5.   

    就用ON ERROR语句,报出错误就是了.合理的运用错误陷阱,可以很好的保证程序不死机
      

  6.   

    去看一下jpg文件的格式,再自己把它读出来。
      

  7.   

    用ON error goto做错误处理
      

  8.   

    自己昨晚看了一晚上的资料。
    结果自己将问题解决了。贴出来共享吧!Public Function TestJpegValidate(Filepath As String) As Boolean
    On Error Resume Next
        Dim Readfilenum As Integer
        Dim mFlag(1) As Byte
        
        Dim Readpos As Long
        Dim FileLength As Long
        
        TestJpegValidate = False
        FileLength = FileLen(Filepath)   ' 取得文件长度。
        
        Readfilenum = FreeFile    Open Filepath For Binary As #Readfilenum
        FileLength = FileLen(Filepath)
        
        Get #Readfilenum, FileLength - 1, mFlag()
        If mFlag(0) <> &HFF And mFlag(1) <> &HD9 Then
            TestJpegValidate = False
        Else
            TestJpegValidate = True
        End If
    '    Debug.Print mFlag(0) & "  " & mFlag(1)
        Close #Readfilenum   ' 关闭文件。End Function
      

  9.   

    anteye:请多关心我们的网站噢!
    这几天你上的比较少了!:(