2011-03-18 5 views
0

입력 한 텍스트의 내용을 확인하여 폴더 경로를 올바르게 입력했는지 확인하는 방법이 필요합니다.형식을 텍스트 상자로 확인하십시오.

드라이브 문자 : 그래서의 형식으로 할 필요가 \ 폴더

예를 들어, C : \ My Documents

해당 형식을 입력하지 않은 경우 두 번 확인을 요청하는 메시지를 표시하고 중지해야합니다.

필자는 필터 기능을 시도했지만 제대로 작동하지 않았습니다. 어떤 도움이라도 굉장합니다. 내가 어디서부터 시작할 지 확신 할 수 없기 때문에 보여줄 코드가 없습니다.

나는 또한 일반적인 대화 상자를 시도했지만 사용자 jsut은 경로를 입력하고 파일을 선택하지 않아야합니다. 확인하고자하는 것은 텍스트 형식이 DRIVE : \ FOLDER 형식 인 경우입니다. 따라서 텍스트 bax에 "BLAH"유형의 메시지가 표시되면 Hey 올바른 경로를 입력하십시오.

답변

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 또는 중반을 사용하면 폴더를 확인하고 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 
관련 문제