已知存在目录"c:\test\11" Private Sub Command1_Click() If Dir("c:\test\11", vbDirectory) "" Then RmDir "c:\test" End If End Sub 这段代码在win98上没有问题可以正确执行,最后c:\test被删除掉 而换到winxp上就出现错误,提示路径不正确 大家看看怎么解决这个问题?
Private Sub Command1_Click()
On Error Resume Next
MkDir "c:\test"
MkDir "c:\test\11"
MsgBox "ok"
End Sub
Private Sub Command2_Click()
Dim fso As New FileSystemObject, f As Folder
Set f = fso.GetFolder("c:\test\11")
If Not IsNull(f) Then
Set f = f.ParentFolder
f.Delete
End If
End Sub
If Dir("c:\test\11", vbDirectory) <> "" Then
RmDir "c:\test\11"
RmDir "c:\test" 'error
End If
我的问题不在于RmDir 是否耗用,而是Dir的问题。
当我使用Dir查找一个目录下的子目录或者文件后,我就无法删除这个目录。
这个问题在98下就没有,而xp下就有。/
Option Explicit
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 '只有在 FOF_SIMPLEPROGRESS 时用
End Type
Private Declare Function SHFileOperation Lib _
"shell32.dll" Alias "SHFileOperationA" (lpFileOp _
As SHFILEOPSTRUCT) As Long
Private Sub Command2_Click()
' 删除文件夹
If Dir("c:\test\11", vbDirectory) <> "" Then
Dim SHFileOp As SHFILEOPSTRUCT
SHFileOp.wFunc = FO_DELETE
SHFileOp.pFrom = "c:\test"
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
Call SHFileOperation(SHFileOp)
End If
End Sub