Saltar al contenido principal
Versión: 20 R10

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
LanzamientoModificaciones
18 R6Añ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 Folder en lugar de 4D.Folder.new().

.create()

Historia
LanzamientoModificaciones
17 R5Añadidos

.create()* : Boolean

ParámetrosTipoDescripción
ResultadoBoolean<-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
LanzamientoModificaciones
17 R5Añadidos

.createAlias*( destinationFolder : 4D.Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D.File

ParámetrosTipoDescripción
destinationFolder4D.Folder->Carpeta de destino para el alias o el acceso directo
aliasNameText->Nombre del alias o del atajo
aliasTypeInteger->Tipo de enlace del alias
Resultado4D.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:

ConstanteValorComentario
fk alias link0Enlace de alias (por defecto)
fk symbolic link1Enlace 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
LanzamientoModificaciones
17 R5Añadidos

.delete*( { option : Integer } )

ParámetrosTipoDescripción
optionInteger->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:

ConstanteValorComentario
Delete only if empty0Elimina la carpeta sólo cuando está vacía
Delete with contents1Elimina 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 errors para 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
LanzamientoModificaciones
17 R5Añadidos

.moveTo*( destinationFolder : 4D.Folder { ; newName : Text } ) : 4D.Folder

ParámetrosTipoDescripción
destinationFolder4D.Folder->Carpeta de destino
newNameText->Nombre completo de la carpeta trasladada
Resultado4D.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
LanzamientoModificaciones
17 R5Añadidos

.rename*( newName : Text ) : 4D.Folder

ParámetrosTipoDescripción
newNameText->Nuevo nombre completo para la carpeta
Resultado4D.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")