Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Angeldj27 en 6 Febrero 2009, 19:59 pm



Título: Crear carpetas todas juntas
Publicado por: Angeldj27 en 6 Febrero 2009, 19:59 pm
Saludos.
Se que co el MkDir se puede crear carpetas pero se pudira crear varias una dentro de otra osea:

MkDir "C:\Ok\OK1\Ok2

Que se cree la carpeta Ok y dentro de ella Ok1 y dentro de Ok1 se cree Ok2
que se creen todas con la misma instruccion.

Saludos..


Título: Re: Crear carpetas todas juntas
Publicado por: Novlucker en 6 Febrero 2009, 20:05 pm
No entiendo, es justamente lo que puede hacer ese comando  :-\

Código
  1. mkdir c:\a\b\c
Eso crea el árbol completo, no es necesaria otra función  :P

Saludos


Título: Re: Crear carpetas todas juntas
Publicado por: Angeldj27 en 6 Febrero 2009, 20:13 pm
Nop me tira error de paht not found y parece que no funciona asi bueno eso creo ;D
Si hubiera una funcion que me la cree el arbol seria bueno

Saludos..


Título: Re: Crear carpetas todas juntas
Publicado por: Novlucker en 6 Febrero 2009, 20:48 pm
Mi error, tienes razón, estaba pensando en el comando de ms-dos, es por eso que tienes dos alternativas  :P

1.
Código
  1. Shell("cmd /c mkdir c:\a\b\c")

2.
Código
  1. 1. Private Sub Command1_Click()  
  2.   2.  
  3.   3. On Error GoTo ErrSub  
  4.   4.  
  5.   5.     Dim i As Integer  
  6.   6.     Dim Array_Dir As Variant  
  7.   7.     Dim Sub_Dir As String  
  8.   8.     Dim El_Path As String  
  9.   9.  
  10.  10.     El_Path = InputBox(" Escribir la ruta del directorio a crear " & _  
  11.  11.                        "con los subdirectorios", _  
  12.  12.                        " Crear varios niveles de directorios")  
  13.  13.      
  14.  14.     If El_Path = vbNullString Then  
  15.  15.         Exit Sub  
  16.  16.     End If  
  17.  17.      
  18.  18.     'Desglosa el path y llena el array con los _  
  19.  19.      subdirectorios que se irán creando  
  20.  20.     Array_Dir = Split(El_Path, "\")  
  21.  21.      
  22.  22.     El_Path = vbNullString  
  23.  23.      
  24.  24.     'Recorre el vector anterior para ir creando uno por uno _  
  25.  25.      comenzando obviamente desde el directorio de primer nivel  
  26.  26.     For i = LBound(Array_Dir) To UBound(Array_Dir)  
  27.  27.         Sub_Dir = Array_Dir(i)  
  28.  28.         If Sub_Dir <> vbNullString Then  
  29.  29.            El_Path = El_Path & Sub_Dir & "\"  
  30.  30.            If Right$(Sub_Dir, 1) <> ":" Then  
  31.  31.               ' Verificamos que no exista  
  32.  32.               If Dir(El_Path, vbDirectory) = vbNullString Then  
  33.  33.                  'Crea la carpeta  
  34.  34.                   Call MkDir(El_Path)  
  35.  35.               End If  
  36.  36.            End If  
  37.  37.         End If  
  38.  38.     Next  
  39.  39.  
  40.  40.     MsgBox " Directorio creado ", vbInformation  
  41.  41.  
  42.  42. 'Error  
  43.  43. Exit Sub  
  44.  44. ErrSub:  
  45.  45.  
  46.  46. MsgBox "Número de error: " & Err.Number & _  
  47.  47.        "Descripción del error: " & Err.Description, vbCritical  
  48.  48.  
  49.  49.  
  50.  50. End Sub

Código:
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/236-crear-directorio-y-subdirectorio.htm

Te estaba creando una función que hiciera justamente esto, pero luego de buscar la encontré ya armada  :D

Saludos


Título: Re: Crear carpetas todas juntas
Publicado por: Karcrack en 6 Febrero 2009, 21:14 pm
Hay un API para hacerlo... si no me equivoco :rolleyes:

Saludos ;D


Título: Re: Crear carpetas todas juntas
Publicado por: Dessa en 6 Febrero 2009, 21:31 pm
Hola, proba si te sirve así:

Código:

If Dir("C:\OK1", vbDirectory) = "" Then MkDir "C:\OK1"
If Dir("C:\OK1\OK2", vbDirectory) = "" Then MkDir ("C:\OK1\OK2")
If Dir("C:\OK1\OK2\OK3", vbDirectory) = "" Then MkDir ("C:\OK1\OK2\OK3")


Saludos


Título: Re: Crear carpetas todas juntas
Publicado por: Angeldj27 en 6 Febrero 2009, 21:43 pm
Gracias por sus respuesta 

Hola, proba si te sirve así:

Código:

If Dir("C:\OK1", vbDirectory) = "" Then MkDir "C:\OK1"
If Dir("C:\OK1\OK2", vbDirectory) = "" Then MkDir ("C:\OK1\OK2")
If Dir("C:\OK1\OK2\OK3", vbDirectory) = "" Then MkDir ("C:\OK1\OK2\OK3")


Saludos

Crearlo de esta forma no es problema lo queria era crearlas todas juntas pero voy a probar con la de  Novlucker a ver como me va.

Saludos..


Título: Re: Crear carpetas todas juntas
Publicado por: Krackwar ™ en 7 Febrero 2009, 08:00 am
Código
  1.  
  2. Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" (ByVal lpPath As String) As Long
  3. Private Sub Form_Load()
  4.    'KPD-Team 2000
  5.    'URL: http://www.allapi.net/
  6.    'E-Mail: KPDTeam@Allapi.net
  7.    'create the directory "c:\this\is\a\test\directory\", if it doesn't exist already
  8.    MakeSureDirectoryPathExists "c:\this\is\a\test\directory\"
  9. End Sub
  10.  
  11.  


Título: Re: Crear carpetas todas juntas
Publicado por: Angeldj27 en 9 Febrero 2009, 20:47 pm
Thks. Me funciono de 10 se agradece  ;D

Saludos...