2011-03-18 50 views
0

我需要一種方法來檢查輸入文本的內容,以確保它們正確輸入文件夾路徑。因此,它需要的格式爲:檢查格式到一個文本框

驅動器盤符:\文件夾

例如C:\我的文檔

如果他們沒有輸入那種格式,我需要停下來並顯示一條消息,告訴他們仔細檢查。

我已經嘗試過濾器功能,但我還沒有完全搞定它的工作。任何幫助都是極好的。我沒有任何代碼顯示,因爲我無法確定從哪裏開始。

我也試過了通用對話框,但用戶jsut需要類型路徑,而不是選擇文件。我想檢查的是,如果文本類型在該格式DRIVE:\ FOLDER中,就是這樣。所以如果在文本中輸入「BLAH」,bax會顯示一條消息,說明你輸入了正確的路徑。

回答

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 
+0

這可能適用於第一個文本框。我擁有的是用戶將指定他們想要在txtSource中複製的文件夾,然後指定該文件夾txtDest的目的地。那麼我是否可以使用通用對話框控件來驗證它們是否使用了正確的格式? – 2011-03-18 14:09:51

+0

沒有通用對話框不起作用。用戶不需要搜索文件。一旦用戶定義了源和目的地,這些變量將被放入RoboCopy中以複製文件夾,權限和樹結構。我想要的只是驗證格式對輸入內容是否正確。 – 2011-03-18 14:17:33

+0

有一個通用對話框的文件夾版本 - 只是選擇文件夾,甚至允許創建新的文件夾 - 它只是返回所涉及路徑的字符串。我會看看是否可以找到一些代碼。 – 2011-03-18 14:48:41

1

在VB6,測試你的文本是否包含一個有效的文件夾:

If Len(Dir("c:\My Documents", vbDirectory))>0 Then 
    'it's a folder 
End If 
1

另外,您可以驗證該文件夾第一,你可以檢查對於":\"使用eith instr或中 那麼你可以驗證文件夾,甚至包括一個選項來創建它,如果不存在filesystemobject(需要ar參考集)在這裏它是功能形式,您可以傳遞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