Private Declare Function SHFileOperation Lib “shell32.dll” Alias “SHFileOperationA” (lpFileOp As SHFILEOPSTRUCT) As Long
Private Type SHFILEOPSTRUCT
hwnd As Long ’
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAnyOperationsAborted As Long
hNameMappings As Long
lpszProgressTitle As String 'only used if FOF_SIMPLEPROGRESS
End Type
- hwnd - 显示文件操作对话框的窗口句柄
- wFunc - 表示要进行的操作,可以取以下值:
- FO_COPY - 拷贝文件。所要拷贝的文件由pFrom成员指定,目的地址有pTo成员指定。
- FO_DELETE - 删除pFrom指定的文件。(pTo 被忽略。)
- FO_MOVE - 移动文件。所要移动的文件由pFrom成员指定,目的地址有pTo成员指定。
- FO_RENAME - 改名pFrom指定的文件。
- pFrom - 指定文件名的缓冲区的地址。必须以Chr(0)结尾。如果包括多个文件以Chr(0)分割。
- pTo - 指定目的文件名或目录的缓冲区的地址。必须以Chr(0)结尾。如果使用了FOF_MULTIDESTFILES标志,可以包括多个文件名,文件名之间以Chr(0)分割。
- fFlags - 标志:
- FOF_ALLOWUNDO - 保存UNDO信息,以便在回收站中恢复文件
- FOF_FILESONLY - 如果使用了*.*,只操作文件。
- FOF_MULTIDESTFILES - pTo成员可以为多个目的文件。
- FOF_NOCONFIRMATION - 不显示确认对话框。
- FOF_NOCONFIRMMKDIR - 不确认是否建立目录。
- FOF_NOERRORUI - 如果有错误,不显示用户界面。
- FOF_RENAMEONCOLLISION - 如果目的文件已经存在,给要处理的文件一个新名字。
- FOF_SILENT - 不显示进度对话框。
- FOF_SIMPLEPROGRESS - 显示进度框,但不显示文件名。
- fAnyOperationsAborted -如果用户退出,该成员为TRUE,否则为FALSE。
- lpszProgressTitle - 进度框的标题,只有选择了FOF_SIMPLEPROGRESS标志才有效。
FORM:
Private Sub Command6_Click()
Dim URL As String
URL = OpenImaget(True)
If URL <> “” Then
Text4.Text = URL
End If
End Sub
Private Sub Command7_Click()
If PathFileExists(Text4.Text) = 0 Then If MsgBox(“不是一个有效的文件路径” & vbCrLf & “是否打开浏览?”, vbQuestion + vbYesNo, “错误”) = vbYes Then Command6_Click: Text4.SetFocus: Exit Sub Else Text4.SetFocus: Exit Sub
If Text5.Text = “” Then MsgBox “新的文件名称不能为空!”, vbExclamation + vbOKOnly, “错误”: Text5.SetFocus: Exit Sub
If Rename(Text4.Text, Text5.Text) Then
MsgBox “成功修改文件名”, vbExclamation + vbOKOnly, “提示”
Else
MsgBox “重命名失败”, vbExclamation + vbOKOnly, “提示”
End If
Text4.Text = “”: Text5.Text = “”
End Sub
Private Sub Command5_Click()
If PathFileExists(Text3.Text) = 0 Then If MsgBox(“不是一个有效的文件路径” & vbCrLf & “是否打开浏览?”, vbQuestion + vbYesNo, “错误”) = vbYes Then Command4_Click: Text3.SetFocus: Exit Sub Else Text3.SetFocus: Exit Sub
If Option1(0).Value Then If MsgBox(“真的要将文件删除到回收站吗?”, vbQuestion + vbYesNo, “删除”) = vbNo Then Exit Sub
If DeleteFile(Text3.Text, IIf(Option1(0).Value, 0, 1)) Then
MsgBox IIf(Option1(0).Value, “成功删除文件到回收站!”, “成功将文件从计算机永久性删除!”), vbExclamation + vbOKOnly, “提示”
Else
MsgBox “删除失败”, vbExclamation + vbOKOnly, “提示”
End If
Text3.Text = “”
End Sub
Private Sub Command3_Click()
If PathFileExists(Text1.Text) = 0 Then If MsgBox(“不是一个有效的文件路径” & vbCrLf & “是否打开浏览?”, vbQuestion + vbYesNo, “错误”) = vbYes Then Command1_Click: Text1.SetFocus: Exit Sub Else Text1.SetFocus: Exit Sub
If PathFileExists(Text2.Text) = 0 Then If MsgBox(“目标路径不是一个有效的地址” & vbCrLf & “是否打开浏览?”, vbQuestion + vbYesNo, “错误”) = vbYes Then Command2_Click: Text2.SetFocus: Exit Sub Else Text2.SetFocus: Exit Sub
If CopyFile(Text1.Text, Text2.Text & “” & VBA.Mid(Text1.Text, InStrRev(Text1.Text, “”), Len(Text1.Text))) Then
MsgBox “拷贝成功”, vbExclamation + vbOKOnly, “提示”
Else
MsgBox “拷贝失败”, vbExclamation + vbOKOnly, “提示”
End If
End Sub
Private Sub Command1_Click()
Dim URL As String
URL = OpenImaget(True)
If URL <> “” Then
Text1.Text = URL
End If
End Sub
Private Sub Command2_Click()
Dim WJJurl As String
WJJurl = GetFolderName()
If WJJurl <> “” Then
Text2 = WJJurl
End If
End Sub
Private Sub Command4_Click()
Dim URL As String
URL = OpenImaget(True)
If URL <> “” Then
Text3.Text = URL
End If
End Sub
Private Sub Form_Load()
Me.Caption = “复制、删除、重命名 文件”
Text1 = “”
Text2 = “”
Text3 = “”
Text4 = “”
Text5 = “”
End Sub