aa=Inputbox "输入路径"
if dir(aa)="" then Mkdir aa
if dir(aa)="" then Mkdir aa
解决方案 »
- VB6 可以动用多個CPU 吗
- 如何设定datagrid只能查看信息,不能修改里面的数据
- 对于Get [#]filenumber, [recnumber], varname :中的recnumber为long,文件不能超过2G
- 读取文本文件
- 求助!关于ado连接excel的查找方面的问题
- 如何让按钮按下后连续显示数字,弹起后停止?
- 一个人的开发,由平民到高手…!
- 如何通过代理服务器连接sql数据库?
- 请问高手,vb6.0出了非法操作.怎么办....请进.................
- 菜鸟再问
- 怎么使有子窗体的窗体永远在上面?急
- ·挑战HOOK,DLL,API,类模块高手,老掉牙的钩子HOOK:我已经在一个程序里实现拦截键盘了,但在DLL中....·
MkDir 语句:创建一个新的目录或文件夹。
MkDir 语句:创建一个新的目录或文件夹。
aa=Inputbox("输入路径")
SucceedDir As String) As Boolean
'*****************************************************************
'函数功能:创建新的多级目录
'参数:strDirName:要创建的目录
' SucceedDir: 成功创的目录
'成功则返回:True
'*****************************************************************
Dim DirArrStr As Variant
'逐段检测其有效性。
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim NewDirStr As String
Dim NoValidChar As Variant
Dim nDriveType As Long
On Error GoTo HELL
'创建目录的无效字串(此处不包括":",因为有驱动器):
NoValidChar = Array("*", ">", "<", "?", "|", Chr(34), "/")
'字符转换为有效性字串:
Dim bReplace As Boolean
For j = 0 To 6
If InStr(1, strDirName, NoValidChar(j), vbTextCompare) <> 0 Then
If MsgBox("所给路径字串含非法字符,如要继续创建,这些字符将被删除。要继续创建吗?", _
vbCritical Or vbYesNo, "") = vbYes Then
bReplace = True
Exit For
Else
CreateDir = False
Exit Function
End If
End If
Next j
'如果需要转换
If bReplace = True Then
For k = 0 To 6
strDirName = Replace(strDirName, NoValidChar(k), "")
Next k
End If
'先将目录分为字符段
strDirName = Trim(strDirName)
strDirName = IIf(Right(strDirName, 1) = "\", Left(strDirName, Len(strDirName) - 1), strDirName)
DirArrStr = Split(strDirName, "\")
NewDirStr = ""
For i = 0 To UBound(DirArrStr)
If i = 0 Then
If Right(DirArrStr(i), 1) = ":" Then
If DirExists(DirArrStr(i) & "\") Then
NewDirStr = DirArrStr(i) & "\"
nDriveType = GetDriveType(NewDirStr)
If GnDriveType <> DRIVE_FIXED Then
If GnDriveType = DRIVE_CDROM Then
MsgBox "无法在光驱上创建目录!", vbCritical Or vbOKOnly, ""
CreateDir = False
Exit Function
ElseIf GnDriveType = DRIVE_REMOTE Then
If MsgBox("所给路径驱动非本地驱动器,如要继续创建,这将不利于系统的运行。要继续创建吗?", _
vbCritical Or vbYesNo, "") = vbNo Then
CreateDir = False
Exit Function
End If
End If
End If
Else
WriteErrLog Nothing, "CreateDir", 1068, "所给路径非法,无法创建!"
End If
Else
WriteErrLog Nothing, "CreateDir", 1081, "所给路径非法,无法创建!"
CreateDir = False
Exit Function
End If
Else
'有效字串长度不为0
If Len(DirArrStr(i)) <> 0 Then
'检测是否存在,不存在则创建
If DirExists(NewDirStr & DirArrStr(i) & "\") = False Then
If InStr(1, DirArrStr(i), ":", vbTextCompare) <> 0 Then
If MsgBox("所给路径字串含非法字符,如要继续创建,这些字符将被删除。要继续创建吗?", _
vbCritical Or vbYesNo, "") = vbNo Then
CreateDir = False
Exit Function
End If
End If
MkDir NewDirStr & DirArrStr(i) & "\"
End If
NewDirStr = NewDirStr & DirArrStr(i) & "\"
End If
End If
Next i
SucceedDir = NewDirStr
CreateDir = True
Exit Function
HELL:WriteErrLog Nothing, "CreateDir", 1151
Err.Clear
CreateDir = False
End Function
Public Function DirExists(ByVal strDirName As String) As Boolean
'*****************************************************************
'函数功能:返回目录是否存在
'存在则返回:True
'***************************************************************** Const strWILDCARD$ = "*.*" Dim strDummy As String On Error Resume Next strDirName = IIf(Right(strDirName, 1) = "\", strDirName, strDirName & "\")
strDummy = Dir$(strDirName & strWILDCARD, vbDirectory)
DirExists = Not (strDummy = vbNullString) Err = 0
End Function
可以递归创建目录,用法请查一下MSDN
'如果不存在,则自动生成此路径或文件。
’经测试,用于多个工程
Public Function AffirmDir(NewDir As String) As String
'by yezi
Dim Tmp() As String, TmpDir$, i%, Attr As Integer
Tmp = Split(NewDir, "\")
TmpDir = Tmp(0)
On Error Resume Next
For i = LBound(Tmp) + 1 To UBound(Tmp)
TmpDir = TmpDir & "\" & Tmp(i)
Err.Clear
Attr = GetAttr(TmpDir)
Select Case Err.Number
Case 53 'file not found error
MkDir TmpDir
End Select
Next i
AffirmDir = TmpDir
On Error GoTo 0
End FunctionPublic Function AffirmFile(NewDir As String) As Integer
'by yezi
Dim Tmp() As String, TmpDir$, i%, Attr As Integer
Tmp = Split(NewDir, "\")
TmpDir = Tmp(0)
On Error Resume Next
For i = LBound(Tmp) + 1 To UBound(Tmp) - 1
TmpDir = TmpDir & "\" & Tmp(i) '路径合成
Err.Clear
Attr = GetAttr(TmpDir)
Select Case Err.Number
Case 53 'file not found error
MkDir TmpDir
End Select
Next i
On Error GoTo 0
TmpDir = TmpDir & "\" & Tmp(i) '带路径的文件名
If Dir(TmpDir) = "" Then
Dim FNum As Integer
FNum = FreeFile
Open TmpDir For Output As #FNum
Close #FNum
AffirmFile = 0 '成功建立新文件
Else
AffirmFile = -1 '旧文件已经存在
End If
End Function
如果你是因为爱好VB而要和我交朋友,我欢迎!如果不是,请自己放弃!