我需要一种方法来检查输入文本的内容,以确保它们正确输入文件夹路径。所以它需要采用以下格式:
驱动器号:\文件夹
e.g。 C:\我的文件
如果他们没有输入那种格式,我需要停下来并显示一条消息告诉他们仔细检查。
我已经尝试了过滤功能,但我还没有完成它的工作。任何帮助都是极好的。我没有任何代码可以显示,因为我不知道从哪里开始。
我也尝试过常用对话框,但用户jsut需要输入路径类型,而不是选择文件。我要检查的是文本类型是否在DRIVE:\ FOLDER格式内,就是它。因此,如果文本bax中的类型“BLAH”有消息说嘿你输入了正确的路径。
答案 0 :(得分:2)
在VB6中,测试文本是否包含有效文件夹:
If Len(Dir("c:\My Documents", vbDirectory))>0 Then
'it's a folder
End If
答案 1 :(得分:1)
您是否考虑过实施通用对话框控件以允许选择正确的文件夹 - 它更可能是准确的。
从here浏览文件夹的一些示例代码:
Private Sub Command1_Click()
On Error Resume Next
Const WINDOW_HANDLE = 0
Const NO_OPTIONS = 0
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(WINDOW_HANDLE, "select folder:", NO_OPTIONS, "C:Scripts")
Set objFolderItem = objFolder.Self
objPath = objFolderItem.Path
objPath = Replace(objPath, "", "\")
Print objPath
End Sub
答案 2 :(得分:1)
或者,您可以首先验证文件夹,然后使用":\"
instr或mid检查eith
然后你可以验证文件夹,甚至包括一个选项来创建它,如果不存在filesystemobject
(需要一个参考集)这里它是函数形式,你可以传递textbox
的内容为验证
Function DirExists(pFile As String, Optional pCreate As Boolean = False)
'
Dim fso As New FileSystemObject
Dim vPath As Variant
Dim sPath As String
Dim y As Variant
DirExists = False
If fso.FolderExists(pFile) Then
DirExists = True
Else
If pCreate Then
vPath = Split(pFile, "\")
For Each y In vPath
sPath = sPath & y & "\"
If Not fso.FolderExists(sPath) Then
fso.CreateFolder (sPath)
If fso.FolderExists(pFile) Then
DirExists = True
Exit Function
End If
End If
Next
End If
End If
End Function