至于备份可用CopyFile这一API来实现,它比VB的FileCopy好用一点
下面的是声明
Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
其中bFailIfExists 可以用Boolean来表示,用来指定是不是覆盖目标文件的
其余两个是源文件和目标文件
下面的程序可以出现一个打开文件夹对话框
Public Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BROWSEINFO) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
Private Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'=======================================
'打开文件夹
'=======================================
Public Function GetDirName() As String
Dim bi As BROWSEINFO
Dim r As Long
Dim pidl As Long
Dim path As String
Dim pos As Integer
bi.pidlRoot = 0&
bi.lpszTitle = srtTitle
bi.ulFlags = 1
pidl = SHBrowseForFolder(bi)
path = Space$(512)
r = SHGetPathFromIDList(ByVal pidl&, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirName = Left(path, pos - 1)
Else: GetDirName = ""
End If
End Function