VB 中的文件拷贝/删除  取文件的类型 判断文件是否存在。
dlg.filename 的后三位作为文件的扩展名? 如果用户定义了一个 扩展名为2为或4为的文件怎么办?filecopy 时 如果文件存在怎么办?

解决方案 »

  1.   

    If Dir(文件路径+文件名) = "" Then
      文件不存在
    else
      文件存在
    end ifkill 文件路径+文件名
      

  2.   


    dim i as integer
    dim FileLx as string
    i=instr(dlg.filename,".")
    filelx=right(dlg.filename,len(dlg.filename)-i)
      

  3.   

    楼上的函数每一个都不好用,如果不是特殊情况可以使用,但是我强烈建议不要用vb自己带的函数,因为我试过几次有时候都没有成功
    Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
    用这个删除保证不出错
    用法:DeleteFile 文件名至于文件存在检查也推荐你用api:
    Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As LongPublic Function FileExist(FileDir As String) As Integer
    '[函数]:文件是否存在
    '[参数]:被检查文件
    '[返回]:0,不存在;1,存在Dim sF As Long
    sF = GetFileAttributes(FileDir)
    FileExist = (sF <> -1)
    If sF = -1 Or sF = 0 Then
       FileExist = 0
    Else
       FileExist = 1
    End If
    End Function
      

  4.   

    用InStrRev函数,从字符的末尾计算。
      

  5.   

    '此函数从字符串中分离出路径
    Public Function GetFilePath(sPathIn As String) As String
      Dim i As Integer
      For i = Len(sPathIn) To 1 Step -1
        If InStr(":\", Mid$(sPathIn, i, 1)) Then Exit For
      Next
      GetFilePath = Left$(sPathIn, i)
    End Function
    '此函数从字符串中分离出文件名
    Public Function GetFileName(sFileIn As String) As String
      Dim i As Integer
      For i = Len(sFileIn) To 1 Step -1
        If InStr("\", Mid$(sFileIn, i, 1)) Then Exit For
      Next
      GetFileName = Mid$(sFileIn, i + 1, Len(sFileIn) - i)
    End Function
    '此函数从字符串中分离出文件扩展名
    Public Function GetFileExt(sFileName As String) As String
      Dim P As Integer
      For P = Len(sFileName) To 1 Step -1
        If InStr(".", Mid$(sFileName, P, 1)) Then Exit For
      Next
      GetFileExt = Right$(sFileName, Len(sFileName) - P)
    End Function