Folder
Folder
objects are created with the Folder
command. Contienen referencias a carpetas que pueden o no existir realmente en el disco. Por ejemplo, cuando ejecuta el comando Folder
para crear una nueva carpeta, se crea un objeto Folder
válido, pero en realidad no se almacena nada en el disco hasta que llame a la función folder.create()
.
Ejemplo
El siguiente ejemplo crea una carpeta "JohnSmith":
Form.curfolder:=Folder(fk database folder)
Form.curfolder:=Folder("C:\\Users\\JohnSmith\\";fk platform path)
Rutas de acceso
Los objetos Folder
admiten varios nombres de ruta, incluida la sintaxis filesystems
o posix
. Los nombres de ruta soportados se detallan en la página Rutas de acceso.
Objeto Folder
.copyTo( destinationFolder : 4D.Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D.Folder copia el objeto Folder en la destinationFolder especificada |
.create() : Boolean crea una carpeta en el disco según las propiedades del objeto Folder |
.createAlias( destinationFolder : 4D.Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D.File crea un alias (macOS) o un acceso directo (Windows) |
.creationDate : Date la fecha de creación de la carpeta |
.creationTime : Time la hora de creación de la carpeta |
.delete( { option : Integer } ) borra la carpeta |
.exists : Boolean true si la carpeta existe en disco |
.extension : Text devuelve la extensión del nombre de la carpeta (si la hay) |
.file( path : Text ) : 4D.File un objeto File dentro del objeto Folder y devuelve su referencia |
.files( { options : Integer } ) : Collection una colección de objetos File contenidos en la carpeta |
.folder( path : Text ) : 4D.Folder crea un objeto Folder dentro del objeto Folder padre y devuelve su referencia |
.folders( { options : Integer } ) : Collection devuelve una colección de objetos Folder contenidos en la carpeta padre |
.fullName : Text devuelve el nombre completo de la carpeta, incluyendo su extensión (si la hay) |
.getIcon( { size : Integer } ) : Picture devuelve el icono de la carpeta |
.hidden : Boolean true si la carpeta está configurada como "oculta" a nivel de sistema |
.isAlias : Boolean siempre false para un objeto Folder |
.isFile : Boolean siempre false para una carpeta |
.isFolder : Boolean siempre true para una carpeta |
.isPackage : Boolean true si la carpeta es un paquete en macOS (y existe en el disco) |
.modificationDate : Date la fecha de la última modificación de la carpeta |
.modificationTime : Time la hora de la última modificación de la carpeta |
.name : Text el nombre de la carpeta, sin extensión (si la hay) |
.original : 4D.Folder el mismo objeto de la carpeta |
.parent : 4D.Folder el objeto carpeta padre de la carpeta |
.path : Text la ruta POSIX de la carpeta |
.platformPath : Text la ruta del archivo expresada con la sintaxis de la plataforma actual |
.moveTo( destinationFolder : 4D.Folder { ; newName : Text } ) : 4D.Folder mueve o renombra el objeto Folder (carpeta de origen) a la carpeta de destino especificada |
.rename( newName : Text ) : 4D.Folder renombra la carpeta con el nombre introducido en newName y devuelve el objeto Folder renombrado |
4D.Folder.new()
Historia
Lanzamiento | Modificaciones |
---|---|
18 R6 | Añadidos |
4D.Folder.new ( path : Text { ; pathType : Integer }{ ; * } ) : 4D.Folder
4D.Folder.new ( folderConstant : Integer { ; * } ) : 4D.Folder
Descripción
La función 4D.Folder.new()
crea y devuelve un nuevo objeto del tipo 4D.Folder
. It is identical to the Folder
command (shortcut).
It is recommended to use the
Folder
shortcut command instead of4D.Folder.new()
.
.copyTo()
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.copyTo( destinationFolder : 4D.Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D.Folder
Parámetros | Tipo | Descripción | |
---|---|---|---|
destinationFolder | 4D.Folder | -> | Carpeta de destino |
newName | Text | -> | Nombre para la copia |
overwrite | Integer | -> | fk overwrite para sustituir los elementos existentes |
Result | 4D.Folder | <- | Carpeta o archivo copiado |
Descripción
La función .copyTo()
copia el objeto Folder
en la destinationFolder especificada.
La destinationFolder debe existir en el disco, de lo contrario se genera un error.
Por defecto, la carpeta se copia con el nombre de la carpeta original. Si desea cambiar el nombre de la copia, pase el nuevo nombre en el parámetro newName. El nuevo nombre debe cumplir con las reglas de nomenclatura (por ejemplo, no debe contener caracteres como ":", "/", etc.), de lo contrario se devuelve un error.
Si ya existe una carpeta con el mismo nombre en la destinationFolder, por defecto 4D genera un error. Puede pasar la constante fk overwrite
en el parámetro overwrite para ignorar y sobrescribir el archivo existente
Constante | Valor | Comentario |
---|---|---|
fk overwrite | 4 | Sobrescribir los elementos existentes, si los hay |
Valor devuelto
El objeto Folder
copiado.
Ejemplo
Desea copiar una carpeta Imágenes de la carpeta de documentos del usuario a la carpeta de la base:
var $userImages; $copiedImages : 4D.Folder
$userImages:=Folder(fk documents folder).folder("Pictures")
$copiedImages:=$userImages.copyTo(Folder(fk database folder);fk overwrite)
.create()
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.create() : Boolean
Parámetros | Tipo | Descripción | |
---|---|---|---|
Result | Boolean | <- | True si la carpeta se ha creado con éxito, false en caso contrario |
Descripción
La función .create()
crea una carpeta en el disco según las propiedades del objeto Folder
.
Si es necesario, la función crea la jerarquía de carpetas como se describe en las propiedades platformPath o path. Si la carpeta ya existe en el disco, la función no hace nada (no se lanza ningún error) y devuelve false.
Valor devuelto
- True si la carpeta se crea con éxito;
- False si ya existe una carpeta con el mismo nombre o si se ha producido un error.
Ejemplo 1
Cree una carpeta vacía en la carpeta de la base:
var $created : Boolean
$created:=Folder("/PACKAGE/SpecialPrefs").create()
Ejemplo 2
Creación de la carpeta "/Archives2019/January/" en la carpeta de la base:
$newFolder:=Folder("/PACKAGE/Archives2019/January")
If($newFolder.create())
ALERT("La carpeta "+$newFolder.name+" fue creada.")
Else
ALERT("Imposible crear la carpeta "+$newFolder.name+".")
End if
.createAlias()
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.createAlias( destinationFolder : 4D.Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D.File
Parámetros | Tipo | Descripción | |
---|---|---|---|
destinationFolder | 4D.Folder | -> | Carpeta de destino para el alias o el acceso directo |
aliasName | Text | -> | Nombre del alias o del atajo |
aliasType | Integer | -> | Tipo de enlace del alias |
Result | 4D.File | <- | Referencia de alias o de acceso directo |
Descripción
La función .createAlias()
crea un alias (macOS) o un acceso directo (Windows) a la carpeta con el nombre aliasName especificado en la carpeta designada por el objeto destinationFolder.
Pase el nombre del alias o del acceso directo a crear en el parámetro aliasName.
Por defecto en macOS, la función crea un alias estándar. También puede crear un enlace simbólico utilizando el parámetro aliasType. Las siguientes constantes están disponibles:
Constante | Valor | Comentario |
---|---|---|
fk alias link | 0 | Enlace de alias (por defecto) |
fk symbolic link | 1 | Enlace simbólico (sólo para macOS) |
En Windows, siempre se crea un acceso directo (archivo.lnk) (el parámetro aliasType es ignorado).
Objeto devuelto
Un objeto 4D.File
con la propiedad isAlias
definida en true.
Ejemplo
Quiere crear un alias para una carpeta de archivos en su carpeta principal:
$myFolder:=Folder("C:\\Documents\\Archives\\2019\\January";fk platform path)
$aliasFile:=$myFolder.createAlias(Folder("/PACKAGE");"Jan2019")
.creationDate
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.creationDate : Date
Descripción
La propiedad .creationDate
devuelve la fecha de creación de la carpeta.
Esta propiedad es de solo lectura.
.creationTime
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.creationTime : Time
Descripción
La propiedad .creationTime
devuelve la hora de creación de la carpeta (expresada como un número de segundos que comienza en 00:00).
Esta propiedad es de solo lectura.
.delete()
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.delete( { option : Integer } )
Parámetros | Tipo | Descripción | |
---|---|---|---|
option | Integer | -> | Opción de eliminación de carpeta |
Descripción
La función .delete()
borra la carpeta.
Por defecto, por razones de seguridad, si omite el parámetro de opción, .delete( )
sólo permite borrar carpetas vacías. Si desea que el comando pueda eliminar carpetas que no están vacías, debe utilizar el parámetro option con una de las siguientes constantes:
Constante | Valor | Comentario |
---|---|---|
Delete only if empty | 0 | Elimina la carpeta sólo cuando está vacía |
Delete with contents | 1 | Elimina la carpeta junto con todo lo que contiene |
Cuando se pasa Delete only if empty
o si se omite el parámetro de opción:
- La carpeta sólo se elimina si está vacía; en caso contrario, el comando no hace nada y se genera un error -47.
- Si la carpeta no existe, se genera el error -120.
Cuando se pasa Delete with contents
:
- La carpeta, junto con todo su contenido, se elimina. Advertencia: incluso esta carpeta y/o su contenido estén bloqueados o definidos como de sólo lectura, si el usuario actual tiene los derechos de acceso adecuados, la carpeta (y su contenido) aún se elimina.
- Si esta carpeta, o cualquiera de los archivos que contiene, no puede ser eliminada, la eliminación se interrumpe tan pronto como se detecta el primer elemento inaccesible y se devuelve un error(*). En este caso, la carpeta puede ser eliminada sólo parcialmente. When deletion is aborted, you can use the
Last errors
command to retrieve the name and path of the offending file. - Si la carpeta no existe, el comando no hace nada y no devuelve ningún error. (*) Windows: -54 (Attempt to open locked file for writing) macOS: -45 (The file is locked or the pathname is not correct)
.exists
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.exists : Boolean
Descripción
La propiedad .exists
devuelve true si la carpeta existe en disco, y falso de lo contrario.
Esta propiedad es de solo lectura.
.extension
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.extension : Text
Descripción
La propiedad .extension
devuelve la extensión del nombre de la carpeta (si la hay). Una extensión siempre comienza por ".". La propiedad devuelve una cadena vacía si el nombre de la carpeta no tiene extensión.
Esta propiedad es de solo lectura.
.file()
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.file( path : Text ) : 4D.File
Parámetros | Tipo | Descripción | |
---|---|---|---|
path | Text | -> | Ruta POSIX relativa |
Result | 4D.File | <- | Objeto File (null si la ruta es inválida) |
Descripción
La función .file()
crea un objeto File
dentro del objeto Folder
y devuelve su referencia.
En ruta, pase una ruta POSIX relativa para designar el archivo a regresar. La ruta se evaluará a partir de la carpeta padre como raíz.
Valor devuelto
Un objeto File
o null si path no es válido.
Ejemplo
var $myPDF : 4D.File
$myPDF:=Folder(fk documents folder).file("Pictures/info.pdf")
.files()
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.files( { options : Integer } ) : Collection
Parámetros | Tipo | Descripción | |
---|---|---|---|
options | Integer | -> | Opciones de la lista de archivos |
Result | Collection | <- | Colección de objetos de archivo hijo |
Descripción
La función .files()
devuelve una colección de objetos File
contenidos en la carpeta.
Los alias o enlaces simbólicos no se resuelven.
Por defecto, si se omite el parámetro options, sólo se devuelven en la colección los archivos del primer nivel de la carpeta, así como los archivos o carpetas invisibles. Puede modificar esto pasando, en el parámetro options, una o varias de las siguientes constantes:
Constante | Valor | Comentario |
---|---|---|
fk recursive | 1 | La colección contiene los archivos de la carpeta especificada y sus subcarpetas |
fk ignore invisible | 8 | Los archivos invisibles no aparecen en la lista |
Valor devuelto
Colección de objetosFile
.
Ejemplo 1
Quiere saber si hay archivos invisibles en la carpeta de la base:
var $all; $noInvisible : Collection
$all:=Folder(fk database folder).files()
$noInvisible:=Folder(fk database folder).files(fk ignore invisible)
If($all.length#$noInvisible.length)
ALERT("Database folder contains hidden files.")
End if
Ejemplo 2
Quiere obtener todos los archivos que no son invisibles en la carpeta Documents:
var $recursive : Collection
$recursive:=Folder(fk documents folder).files(fk recursive+fk ignore invisible)
.folder()
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.folder( path : Text ) : 4D.Folder
Parámetros | Tipo | Descripción | |
---|---|---|---|
path | Text | -> | Ruta POSIX relativa |
Result | 4D.Folder | <- | Objeto carpeta creado (null si path es inválido) |
Descripción
La función .folder()
crea un objeto Folder
dentro del objeto Folder
padre y devuelve su referencia.
En path, pase una ruta relativa POSIX para designar la carpeta a devolver. La ruta se evaluará a partir de la carpeta padre como raíz.
Valor devuelto
Un objeto Folder
o null si path es inválido.
Ejemplo
var $mypicts : 4D.Folder
$mypicts:=Folder(fk documents folder).folder("Pictures")
.folders()
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.folders( { options : Integer } ) : Collection
Parámetros | Tipo | Descripción | |
---|---|---|---|
options | Integer | -> | Opciones de la lista de carpetas |
Result | Collection | <- | Colección de objetos de carpeta hijo |
Descripción
La función .folders()
devuelve una colección de objetos Folder
contenidos en la carpeta padre.
Por defecto, si se omite el parámetro options, sólo se devuelven en la colección las carpetas del primer nivel de la carpeta. Puede modificar esto pasando, en el parámetro options, una o varias de las siguientes constantes:
Constante | Valor | Comentario |
---|---|---|
fk recursive | 1 | La colección contiene las carpetas de la carpeta especificada y sus subcarpetas |
fk ignore invisible | 8 | Los archivos invisibles no aparecen en la lista |
Valor devuelto
Colección de objetos Folder
.
Ejemplo
Quiere obtener la colección de todas las carpetas y subcarpetas de la carpeta de la base:
var $allFolders : Collection
$allFolders:=Folder("/PACKAGE").folders(fk recursive)
.fullName
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.fullName : Text
Descripción
La propiedad .fullName
devuelve el nombre completo de la carpeta, incluyendo su extensión (si la hay).
Esta propiedad es de solo lectura.
.getIcon()
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.getIcon( { size : Integer } ) : Picture
Parámetros | Tipo | Descripción | |
---|---|---|---|
size | Integer | -> | Longitud del lado de la imagen devuelta (píxeles) |
Result | Picture | <- | Icono |
Descripción
La función .getIcon()
devuelve el icono de la carpeta.
El parámetro opcional size especifica las dimensiones en píxeles del icono devuelto. Este valor representa en realidad la longitud del lado del cuadrado que contiene el icono. Los iconos suelen definirse en 32x32 píxeles ("iconos grandes") o 16x16 píxeles ("iconos pequeños"). Si pasa 0 u omite este parámetro, se devuelve la versión "icono grande".
Si la carpeta no existe en el disco, se devuelve un icono vacío por defecto.
Valor devuelto
Imagen del icono de la carpeta.
.hidden
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.hidden : Boolean
Descripción
La propiedad .hidden
devuelve true si la carpeta está configurada como "oculta" a nivel de sistema, y false en caso contrario.
Esta propiedad es de solo lectura.
.isAlias
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.isAlias : Boolean
Descripción
La propiedad .isAlias
devuelve siempre false para un objeto Folder
.
Esta propiedad es de solo lectura.
.isFile
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.isFile : Boolean
Descripción
La propiedad .isFile
devuelve siempre false para una carpeta.
Esta propiedad es de solo lectura.
.isFolder
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.isFolder : Boolean
Descripción
La propiedad .isFolder
devuelve siempre true para una carpeta.
Esta propiedad es de solo lectura.
.isPackage
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.isPackage : Boolean
Descripción
La propiedad .isPackage
devuelve true si la carpeta es un paquete en macOS (y existe en el disco). En caso contrario, devuelve false.
En Windows, .isPackage
siempre devuelve false.
Esta propiedad es de solo lectura.
.modificationDate
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.modificationDate : Date
Descripción
La propiedad .modificationDate
devuelve la fecha de la última modificación de la carpeta.
Esta propiedad es de solo lectura.
.modificationTime
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.modificationTime : Time
Descripción
La propiedad .modificationDate
devuelve la hora de la última modificación de la carpeta (expresada como un número de segundos que comienza en 00:00).
Esta propiedad es de solo lectura.
.moveTo()
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.moveTo( destinationFolder : 4D.Folder { ; newName : Text } ) : 4D.Folder
Parámetros | Tipo | Descripción | |
---|---|---|---|
destinationFolder | 4D.Folder | -> | Carpeta de destino |
newName | Text | -> | Nombre completo de la carpeta trasladada |
Result | 4D.Folder | <- | Carpeta movida |
Descripción
La función .moveTo( )
mueve o renombra el objeto Folder
(carpeta de origen) a la carpeta de destino especificada.
La destinationFolder debe existir en el disco, de lo contrario se genera un error.
Por defecto, la carpeta conserva su nombre cuando se mueve. Si desea cambiar renombrar la carpeta desplazada, pase el nombre completo en el parámetro newName. El nuevo nombre debe cumplir con las reglas de nomenclatura (por ejemplo, no debe contener caracteres como ":", "/", etc.), de lo contrario se devuelve un error.
Objeto devuelto
El objeto Folder
movido.
Ejemplo
Quiere mover y renombrar una carpeta:
var $tomove; $moved : Object
$docs:=Folder(fk documents folder)
$tomove:=$docs.folder("Pictures")
$tomove2:=$tomove.moveTo($docs.folder("Archives");"Pic_Archives")
.name
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.name : Text
Descripción
La propiedad .name
devuelve el nombre de la carpeta, sin extensión (si la hay).
Esta propiedad es de solo lectura.
.original
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.original : 4D.Folder
Descripción
La propiedad .original
devuelve el mismo objeto de la carpeta .
Esta propiedad es de solo lectura.
Esta propiedad está disponible en las carpetas para permitir que el código genérico procese carpetas o archivos.
.parent
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.parent : 4D.Folder
Descripción
La propiedad .parent
devuelve el objeto carpeta padre de la carpeta. Si la ruta representa una ruta del sitema (por ejemplo, "/DATA/"), se devuelve la ruta del sistema.
Si la carpeta no tiene un padre (raíz), se devuelve el valor null.
Esta propiedad es de solo lectura.
.path
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.path : Text
Descripción
La propiedad .path
devuelve la ruta POSIX de la carpeta. Si la ruta representa un filesystem (por ejemplo, "/DATA/"), se devuelve el filesystem.
Esta propiedad es de solo lectura.
.platformPath
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.platformPath : Text
Descripción
La propiedad .platformPath
devuelve la ruta del archivo expresada con la sintaxis de la plataforma actual.
Esta propiedad es de solo lectura.
.rename()
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.rename( newName : Text ) : 4D.Folder
Parámetros | Tipo | Descripción | |
---|---|---|---|
newName | Text | -> | Nuevo nombre completo para la carpeta |
Result | 4D.Folder | <- | Carpeta renombrada |
Descripción
La función .rename()
renombra la carpeta con el nombre introducido en newName y devuelve el objeto Folder
renombrado.
El parámetro newName debe cumplir con las reglas de nomenclatura (por ejemplo, no debe contener caracteres como ":", "/", etc.), de lo contrario se devuelve un error. Si ya existe un archivo con el mismo nombre, se devuelve un error.
Objeto devuelto
El objeto Folder
renombrado.
Ejemplo
var $toRename : 4D.Folder
$toRename:=Folder("/RESOURCES/Pictures").rename("Images")