2011-03-18 7 views
0

入力したテキストの内容を確認して、フォルダパスを正しく入力しているかどうかを確認する方法が必要です。フォーマットをテキストボックスにチェック

ドライブ文字:\フォルダ

例えばだから、の形式にする必要がC:\ My Documents

その形式で入力していない場合、私は停止して、二重チェックするように指示するメッセージを表示する必要があります。

フィルタ機能を試しましたが、うまく機能しませんでした。どんな助けも素晴らしいだろう。私はどこから始めるべきなのかわからないので、表示するコードはありません。

私も共通ダイアログを試しましたが、ユーザーjsutはパスを入力する必要があります。ファイルを選択しないでください。私がチェックしたいのは、テキストタイプがそのフォーマットのDRIVE:\ FOLDER、つまりそのフォーマット内にあるかどうかだけです。だから、テキスト "BLAH"にメッセージbaxが書かれている場合は、正しいパスを入力してください。

答えて

1

あなたは正しいダイアログボックスコントロールを実装して、正しいフォルダを選択できるように考えましたか?正確である可能性が高いでしょう。

hereからフォルダの参照のいくつかのサンプルコード:

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

これは、最初のテキストボックスで機能する可能性があります。私が持っているのは、ユーザがtxtSourceでコピーしたいフォルダを指定し、そのフォルダの宛先を指定することです。txtDest。では、共通のダイアログコントロールを使用して、両方が正しい形式を使用していることを確認できますか? –

+0

共通のダイアログボックスは機能しません。ユーザーはファイルを検索する必要はありません。ユーザがソースとデスティネーションを定義すると、それらの変数はRoboCopyに入れられ、フォルダ、パーミッション、ツリー構造をコピーします。私が望むのは、書式が正しいかどうかを確認することです。 –

+0

共通ダイアログのフォルダバージョンがあります。フォルダ選択だけで、新規作成も可能です。関連するパスの文字列を返します。私はいくつかのコードを見つけることができるかどうか見てみましょう。 –

1

VB6では、あなたのテキストが有効なフォルダが含まれているかどうかをテストします":\"の場合eith instrまたはmidを使用すると、フォルダを検証して、filesystemobject(存在しない場合)を作成するオプションを含めることもできますeference set)ここでは関数形式であるので、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 
1

は、別の方法としては、まずあなたがチェックできるフォルダを検証することができます:

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 
関連する問題