Gambas3 contiene una serie de ordenes que nos van a ayudar a manejar archivos y directorios:
Entre ellas:
CHMOD : Cambia el permiso de un archivo, ejemplo: : Chmod "~/Documents" To "rwxr-x---"
COPY : Copia un archivo, ejemplo: COPY User.Home &/ ".config/gambas/gambas.conf" TO "/mnt/save/gambas.conf.save"
Exist : Comprueba si existe un fichero o directorio. Ejemplo: PRINT Exist(user.home & "/gambas.txt")
IsDir : Devuelve si es un directorio la ruta pasada
KILL : Borra un fichero
MKDIR: crea un directorio
MOVE : mueve o cambia de nombre un fichero. Ejemplo: MOVE OldName TO NewName
RMDIR
: borra un directorio vacioStat : Obtienes información de un fichero:
Temp$ : crea un nombre temporal para un fichero.
Además la clase file, tiene una serie de métodos que devuelven parte del nombre de fichero:
.Name : nombre sin extensión
.Basename : nombre con extensión
.Ext: extensión del fichero
.Dir: directorio del fichero
Exemplo de uso de métodos de file:
Exemplo de uso de métodos de file:
Ejemplo de un boton llamado "ButtonDisplayPath", el cual al hacer click sobre el, despliega un cuadro de dialogo para elegir un fichero, y luego nos da los datos del fichero (ruta, nombre, extension)
PUBLIC SUB ButtonDisplayPath_Click()
IF Dialog.OpenFile() THEN RETURN
PRINT "Nombre completo del fichero: " & Dialog.Path
PRINT "Nombre del fichero (con extension) " & File.Name(Dialog.Path)
PRINT "Nombre del fichero (sin extension): " & File.BaseName(Dialog.Path)
PRINT "Extension del fichero: " & File.Ext(Dialog.Path)
PRINT "Directorio del fichero: " & File.Dir(Dialog.Path)
END
Ejemplo de función para copia recursiva de archivos y directorios:
Esta función recursiva, sirve para copiar todos los archivos y carpetas de una carpeta a otra. Tiene un parámetro opcional para seleccionar el tipo de ficheros que queremos copiar:
PUBLIC SUB copia_dir(path_origen AS String, path_destino AS String, OPTIONAL tipo as String)
DIM arDir AS string[]
DIM arFile AS string[]
DIM nombredir, nombrefile AS String
IF NOT tipo then tipo="*"
IF NOT Exist(path_destino) THEN
MKDIR path_destino
ENDIF
arfile = Dir(path_origen, tipo, gb.file) 'extraemos los ficheros
FOR EACH nombrefile IN arfile 'los copiamos
COPY path_origen &/ nombrefile TO path_destino &/ nombrefile
NEXT
ardir = Dir(path_origen, "*", gb.Directory)
FOR EACH nombredir IN arDir 'extraemos los subdirectorios
copia_dir(path_origen &/ nombredir, path_destino &/ nombredir) 'usamos la recursividad
NEXT
END
Para ampliar más la información:
http://gambaswiki.org/wiki/cat/file?w
http://gambaswiki.org/wiki/comp/gb/file?w
http://gambaswiki.org/wiki/comp/gb/stat
Fuente ejemplo de función recursiva de copia de archivos (autor Shordi)
http://www.gambas-es.org/viewtopic.php?f=5&t=1440&highlight=recursiva+archivos
No hay comentarios:
Publicar un comentario