visual not net exist doesn create crear check vb6

not - Equivalente a Directory.CreateDirectory() en VB6



visual basic create directory if doesn t exist (3)

Intentando crear varias capas de carpetas a la vez C: / pie / applepie / recipies / sin usar varios comandos diferentes, ¿hay alguna manera sencilla similar a Directory.CreateDirectory ()?


Aquí hay un código que utilicé en uno de mis proyectos. Requiere que se agregue una referencia al proyecto para el objeto del sistema de archivos.

Primero, haga clic en Proyecto -> Referencias, baje hasta "Microsoft Scripting Runtime" y selecciónelo. Entonces puedes usar esta función:

Public Sub MakePath(ByVal Folder As String) Dim arTemp() As String Dim i As Long Dim FSO As Scripting.FileSystemObject Dim cFolder As String Set FSO = New Scripting.FileSystemObject arTemp = Split(Folder, "/") For i = LBound(arTemp) To UBound(arTemp) cFolder = cFolder & arTemp(i) & "/" If Not FSO.FolderExists(cFolder) Then Call FSO.CreateFolder(cFolder) End If Next End Sub


Como alternativa, aquí hay una función que escribí que toma una ruta completa que incluye una letra de unidad si es necesario como parámetro. A continuación, recorre el camino y atrapa el error de VB número 76 (ruta no encontrada). Cuando el controlador de errores atrapa un error 76, crea la carpeta que causó el error y reanuda la ruta.

Public Function Check_Path(rsPath As String) As Boolean Dim dPath As String Dim i As Integer Dim sProductName As String On Error GoTo Check_Path_Error If Left$(UCase$(rsPath), 2) Left$(UCase$(CurDir), 2) Then ChDrive Left$(rsPath, 2) End If i = 3 Do While InStr(i + 1, rsPath, "/") > 0 dPath = Left$(rsPath, InStr(i + 1, rsPath, "/") - 1) i = InStr(i + 1, rsPath, "/") ChDir dPath Loop dPath = rsPath ChDir dPath Check_Path = True Exit Function Check_Path_Error: If Err.Number = 76 Then ''path not found'' MkDir dPath ''create the folder'' Resume Else sProductName = IIf(Len(App.ProductName) = 0, App.EXEName, App.ProductName) MsgBox "There was an unexpected error while verifying/creating directories." _ & vbCrLf & vbCrLf & "Error: " & CStr(Err.Number) & ", " & Err.Description & ".", _ vbOKOnly + vbCritical, sProductName & " - Error Creating File" Check_Path = False End If End Function


''Sin la necesidad de hacer referencia a FileSystemObject

Public Sub MkPath(ByVal sPath As String) Dim Splits() As String, CurFolder As String Dim i As Long Splits = Split(sPath, "/") For i = LBound(Splits) To UBound(Splits) CurFolder = CurFolder & Splits(i) & "/" If Dir(CurFolder, vbDirectory) = "" Then MkDir CurFolder Next i End Sub