Folder
Los objetos Folder son creados con el comando Folder. 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
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. Es idéntico al comando Folder (atajo).
Se recomienda utilizar el comando de acceso directo
Folderen lugar de4D.Folder.new().
.create()
Historia
| Lanzamiento | Modificaciones | 
|---|---|
| 17 R5 | Añadidos | 
.create()* : Boolean
| Parámetros | Tipo | Descripción | |
|---|---|---|---|
| Resultado | 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 | 
| Resultado | 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")
.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. Cuando se interrumpe la eliminación, puede utilizar el comando Last errorspara recuperar el nombre y la ruta del archivo infractor.
- 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)
.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 | 
| Resultado | 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. Por defecto, la carpeta conserva su nombre cuando se mueve. 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")
.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 | 
| Resultado | 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")