Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Crear Carpeta Disco Usando Solo Código Gambas.
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Crear Carpeta Disco Usando Solo Código Gambas. 
 
Hola, pasando del clásico "shell mkdir ...." o exec [....] es posible crear una carpeta en el disco solo con comandos de gambas?
He usado esta:
Mkdir "ruta/nueva"
 

Pero en la documentación dice que si alguna de las carpetas "padre" no existen, el comando fallara.

¿Existe alguna opción para que fuerce la creación de lo que falte?

Saludos.
 



 
última edición por tincho el Lunes, 03 Octobre 2016, 18:23; editado 1 vez 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Carpeta Disco Usando Solo Código Gambas. 
 
tincho
Citar:
si alguna de las carpetas "padre" no existen, el comando fallara.
¿Existe alguna opción para que fuerce la creación de lo que falte?

Que yo sepa, no.

Lo que debes de intentar antes de crear la carpeta comprobar con la orden exist(), si existe la ruta , y si no exite crearla.
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Carpeta Disco Usando Solo Código Gambas. 
 
Buenos días a todos

Tal vez ...

If $Pathdef Not Exist($Pathdef) Then Mkdir $Pathdef 'si le répertoire par défaut n'existe pas on le créé


Esto es lo que utilizo para crear mis directorios en crearch ...

Buen día.
 



 
didier18 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Carpeta Disco Usando Solo Código Gambas. 
 
didier18 escribió: [Ver mensaje]
If $Pathdef Not Exist($Pathdef) Then....

Hola didier18,
porque pones dos veces la misma ruta $Pathdef ?
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Carpeta Disco Usando Solo Código Gambas. 
 
Buenos días a todos

De hecho, la redundancia inicial es inútil (gracias vuott).
Más $Pathdef no se define ...
este ejemplo concreto que va a crear un directorio en el user.home Tincho
Public Sub Form_Open()
  Dim $Pathdef As String = User.home & "/tincho"
If Not Exist($Pathdef) Then Mkdir $Pathdef
End


Buen día.
 



 
didier18 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Carpeta Disco Usando Solo Código Gambas. 
 
Adornándolo un poquito se pueden crear árboles enteros, que es lo que quería Tincho.
Algo así (no lo he probado, o sea, que ojo con el copiar y pegar)
Public sub form open()

    creaCarpetas(user.home &/ "Escritorio/nueva/otranueva")

end

Public Sub creaCarpeta(sPath as string)

    dim n as integer
    dim aFolders as string[]

    aFolders=split(sPath,"/")
    for n = 0 to max.aFolders
        If Not Exist(aFolders[n]) Then Mkdir aFolders[n]
    next

Catch
   message.error( "Se produjo un error creando la carpeta, revise sus permisos")
end

 




===================
No podemos regresar
 
última edición por shordi el Martes, 04 Octobre 2016, 17:57; editado 2 veces 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Carpeta Disco Usando Solo Código Gambas. 
 
Shordi:

max.aFolders
 


Esa propiedad "aFolders" no la conocía. Jejeje.  

Iba a mostrar este código. Ahora veo que se puede reducir un poco más.

Public Sub Main()
  
  Dim rutacompleta As String
  
  rutacompleta = User.Home &/ "Temporal/subdirprueba1/subdirprueba2/"
  
  CrearRuta(rutacompleta)
  
End

Public Sub CrearRuta(ruta As String)
  
  Dim subdir As String[]
  Dim pos As Integer
  Dim sruta As String
  
  subdir = Split(ruta, "/", Null, True)
  
  sruta = User.Home & "/"
  
  For pos = 2 To subdir.max
    sruta &= subdir[pos] & "/"
    If Not Exist(sruta) Then
      Try Mkdir sruta
      If Error Then
        Print "No se ha podido crear el directorio"
        Break
      Endif
    Else
      Print "Ya existe la ruta " & sruta
    Endif
   Next
    
End
 


Más o menos he coincidido con Shordi.  

Shordi. ¿ Estás seguro que en tu ejemplo crea la ruta con la "/" ?.  

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Martes, 04 Octobre 2016, 18:43; editado 2 veces 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Carpeta Disco Usando Solo Código Gambas. 
 
Citar:
Shordi. ¿ Estás seguro que en tu ejemplo crea la ruta con la "/" ?.  


No: estoy seguro de que NO crea la ruta con la / . La / es el separador que usa split, nunca puede ser un elemento del array, por lo que nunca lo creará.
 
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Carpeta Disco Usando Solo Código Gambas. 
 
Citar:

No: estoy seguro de que NO crea la ruta con la / . La / es el separador que usa split, nunca puede ser un elemento del array, por lo que nunca lo creará.


Eso ya lo sé.  
Entonces el bucle de tu ejemplo no va creando una ruta completa. Mas bien cada directorio se crean todos en
el raíz de "algún lugar..de la Mancha".  

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Carpeta Disco Usando Solo Código Gambas. 
 
...siguiendo los pasos de shordi:
Public Sub Main()

  creaCarpetas("/tmp/nueva/otranueva")

End


Public Sub creaCarpetas(sPath As String)

    Dim b As Byte
    Dim aFolders As String[]
    Dim s As String

    aFolders = Split(sPath, "/")

  For b = 1 To aFolders.Max
    s &= "/" & aFolders[b]
    If Not Exist(s) Then Mkdir s
  Next

End

 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Crear Carpeta Fenriz07 Shell Scripting 3 Martes, 04 Octobre 2011, 20:22 Ver último mensaje
Fenriz07
No hay nuevos mensajes Crear Reportes Usando El Componente Gb.rep... willicab Controles/Librerías/Componentes 5 Jueves, 10 Abril 2014, 16:01 Ver último mensaje
leonel
No hay nuevos mensajes Guardar Los Archivos De Datos De Un Progra... jsbsan General 7 Martes, 23 Diciembre 2014, 14:39 Ver último mensaje
jsbsan
No hay nuevos mensajes Crear Un Disco De Instalacion Para Program... yireh Bases de Datos 3 Miercoles, 18 May 2016, 19:10 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron