Folder
Folder
objects are created with the Folder
command. They contain references to folders that may or may not actually exist on disk. For example, when you execute the Folder
command to create a new folder, a valid Folder
object is created but nothing is actually stored on disk until you call the folder.create( )
function.
Ejemplo
The following example creates a "JohnSmith" folder:
Form.curfolder:=Folder(fk database folder)
Form.curfolder:=Folder("C:\\Users\\JohnSmith\\";fk platform path)
Folder object
.copyTo( destinationFolder : 4D.Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D Folder copia el objeto |
.create() : Boolean creates a folder on disk according to the properties of the |
.createAlias( destinationFolder : 4D.Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D.File creates an alias (macOS) or a shortcut (Windows) |
.creationDate : Date la fecha de creación de la carpeta |
.creationTime : Time la hora de creación de la carpeta |
.delete( { option : Integer } ) deletes the folder |
.exists : Boolean true si la carpeta existe en el disco |
.extension : Text devuelve la extensión del nombre de la carpeta (si la hay) |
.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 |
.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 Folder que la carpeta |
.parent : 4D.Folder el objeto carpeta padre de la carpeta |
.path : Text la ruta POSIX de la carpeta |
.platformPath : Text la ruta de la carpeta expresada con la sintaxis de la plataforma actual |
.moveTo( destinationFolder : 4D.Folder { ; newName : Text } ) : 4D.Folder moves or renames the |
.rename( newName : Text ) : 4D.Folder renames the folder with the name you passed in newName and returns the renamed |
Folder
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
Folder ( path : Text { ; pathType : Integer }{ ; * } ) : 4D.Folder
Folder ( folderConstant : Integer { ; * } ) : 4D.Folder
Parámetros | Tipo | Descripción | |
---|---|---|---|
path | Texto | -> | Ruta de la carpeta |
folderConstant | Integer | -> | Constante de la carpeta 4D |
pathType | Integer | -> | fk posix path (por defecto) o fk platform path |
* | -> | * para devolver la carpeta de la base local | |
Resultado | 4D.Folder | <- | Nuevo objeto de carpeta |
Descripción
The Folder
command creates and returns a new object of the 4D.Folder
type. El comando acepta dos sintaxis:
Folder ( path { ; pathType } { ; * } )
In the path parameter, pass a folder path string. You can use a custom string or a filesystem (e.g., "/DATA").
Only absolute pathnames are supported with the
Folder
command.
Por defecto, 4D espera una ruta expresada con la sintaxis POSIX. Si trabaja con los nombres de ruta de plataforma (Windows o macOS), debe declararlo utilizando el parámetro pathType. Las siguientes constantes están disponibles:
Constante | Valor | Comentario |
---|---|---|
fk platform path | 1 | Ruta expresada con una sintaxis específica de la plataforma (obligatoria en caso de nombre de ruta de plataforma) |
fk posix path | 0 | Ruta expresada con sintaxis POSIX (por defecto) |
Folder ( folderConstant { ; * } )
In the folderConstant parameter, pass a 4D built-in or system folder, using one of the following constants:
Constante | Valor | Comentario |
---|---|---|
fk applications folder | 116 | |
fk data folder | 9 | Filesystem asociado: "/DATA" |
fk database folder | 4 | Filesystem asociado: "/PACKAGE" |
fk desktop folder | 115 | |
fk documents folder | 117 | Carpeta Documentos del usuario |
fk licenses folder | 1 | Folder containing the machine's 4D license files |
fk logs folder | 7 | Associated filesystem: "/LOGS" |
fk mobileApps folder | 10 | |
fk remote database folder | 3 | 4D database folder created on each 4D remote machine |
fk resources folder | 6 | Associated filesystem: "/RESOURCES" |
fk system folder | 100 | |
fk user preferences folder | 0 | 4D folder that stores user preference files within the <userName> directory. |
fk web root folder | 8 | Current Web root folder of the database: if within the package "/PACKAGE/path", otherwise full path |
If the command is called from a component, pass the optional * parameter to get the path of the host database. Otherwise, if you omit the * parameter, a null object is always returned.
4D.Folder.new()
Histórico
Versión | Modificaciones |
---|---|
v18 R6 | Añadidos |
4D.Folder.new ( path : Text { ; pathType : Integer }{ ; * } ) : 4D.Folder
4D.Folder.new ( folderConstant : Integer { ; * } ) : 4D.Folder
Descripción
The 4D.Folder.new()
function creates and returns a new object of the 4D.Folder
type. It is identical to the Folder
command (shortcut).
It is recommended to use the
Folder
shortcut command instead of4D.Folder.new()
.
.copyTo()
Histórico
Versión | Modificaciones |
---|---|
v17 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 | Texto | -> | Nombre para la copia |
overwrite | Integer | -> | fk overwrite para sustituir los elementos existentes |
Resultado | 4D.Folder | <- | Carpeta o archivo copiado |
Descripción
La función .copyTo()
copia el objeto Folder
en el destinationFolder especificado>.
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+"/Pictures/")
$copiedImages:=$userImages.copyTo(Folder(fk database folder);fk overwrite)
.create()
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.create() : Boolean
Parámetros | Tipo | Descripción | |
---|---|---|---|
Resultado | Booleano | <- | True si la carpeta se ha creado con éxito, false en caso contrario |
Descripción
The .create()
function creates a folder on disk according to the properties of the Folder
object.
If necessary, the function creates the folder hierachy as described in the platformPath or path properties. If the folder already exists on disk, the function does nothing (no error is thrown) and returns false.
Valor devuelto
- True if the folder is created successfully;
- False if a folder with the same name already exists or if an error occured.
Ejemplo 1
Cree una carpeta vacía en la carpeta de la base:
var $created : Boolean
$created:=Folder("/PACKAGE/SpecialPrefs").create()
Ejemplo 2
Creation of the "/Archives2019/January/" folder in the database folder:
$newFolder:=Folder("/PACKAGE/Archives2019/January")
If($newFolder.create())
ALERT("La"+$newFolder.name+" carpeta fue creada.")
Else
ALERT("Impossible to create a "+$newFolder.name+" folder.")
End if
.createAlias()
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.createAlias( destinationFolder : 4D.Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D.File
Parámetros | Tipo | Descripción | |
---|---|---|---|
destinationFolder | 4D.Folder | -> | Destination folder for the alias or shortcut |
aliasName | Texto | -> | Name of the alias or shortcut |
aliasType | Integer | -> | Type of the alias link |
Resultado | 4D.File | <- | Alias or shortcut reference |
Descripción
The .createAlias()
function creates an alias (macOS) or a shortcut (Windows) to the folder with the specified aliasName name in the folder designated by the destinationFolder object.
Pass the name of the alias or shortcut to create in the aliasName parameter.
By default on macOS, the function creates a standard alias. You can also create a symbolic link by using the aliasType parameter. 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) |
On Windows, a shortcut (.lnk file) is always created (the aliasType parameter is ignored).
Objeto devuelto
A 4D.File
object with the isAlias
property set to true.
Ejemplo
You want to create an alias to an archive folder in your database folder:
$myFolder:=Folder("C:\\Documents\\Archives\\2019\\January";fk platform path)
$aliasFile:=$myFolder.createAlias(Folder("/PACKAGE");"Jan2019")
.creationDate
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.creationDate : Date
Descripción
La propiedad .creationDate
devuelve la fecha de creación de la carpeta.
Esta propiedad es de sólo lectura.
.creationTime
Histórico
Versión | Modificaciones |
---|---|
v17 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 sólo lectura.
.delete()
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.delete( { option : Integer } )
Parámetros | Tipo | Descripción | |
---|---|---|---|
option | Integer | -> | Opción de eliminación de carpeta |
Descripción
The .delete()
function deletes the folder.
By default, for security reasons, if you omit the option parameter, .delete( )
only allows empty folders to be deleted. If you want the command to be able to delete folders that are not empty, you must use the option parameter with one of the following constants:
Constante | Valor | Comentario |
---|---|---|
Delete only if empty | 0 | Deletes folder only when it is empty |
Delete with contents | 1 | Deletes folder along with everything it contains |
When Delete only if empty
is passed or if you omit the option parameter:
- The folder is only deleted if it is empty; otherwise, the command does nothing and an error -47 is generated.
- If the folder does not exist, the error -120 is generated.
When Delete with contents
is passed:
- The folder, along with all of its contents, is deleted. Warning: Even when this folder and/or its contents are locked or set to read-only, if the current user has suitable access rights, the folder (and contents) is still deleted.
- If this folder, or any of the files it contains, cannot be deleted, deletion is aborted as soon as the first inaccessible element is detected, and an error(*) is returned. In this case, the folder may be only partially deleted. When deletion is aborted, you can use the
GET LAST ERROR STACK
command to retrieve the name and path of the offending file. - If the folder does not exist, the command does nothing and no error is returned. (*) Windows: -54 (Attempt to open locked file for writing) macOS: -45 (The file is locked or the pathname is not correct)
.exists
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.exists : Boolean
Descripción
La propiedad .exists
devuelve true si la carpeta existe en el disco, y false en caso contrario.
Esta propiedad es de sólo lectura.
.extension
Histórico
Versión | Modificaciones |
---|---|
v17 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 sólo lectura.
.file()
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.file( path : Text ) : 4D.File
Parámetros | Tipo | Descripción | |
---|---|---|---|
path | Texto | -> | Ruta POSIX relativa |
Resultado | 4D.File | <- | Objeto File (null si la ruta no es válida) |
Descripción
La función .file()
crea un objeto File
en el objeto Folder
y devuelve su referencia.
En path, pase una ruta relativa POSIX para designar el archivo a devolver. 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()
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.files( { options : Integer } ) : Collection
Parámetros | Tipo | Descripción | |
---|---|---|---|
options | Integer | -> | Opciones de la lista de archivos |
Resultado | 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 archivos o carpetas de la carpeta especificada y sus subcarpetas |
fk ignore invisible | 8 | Los archivos o carpetas invisibles no aparecen en la lista |
Valor devuelto
Colección de objetos File
.
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()
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.folder( path : Text ) : 4D.Folder
Parámetros | Tipo | Descripción | |
---|---|---|---|
path | Texto | -> | Ruta POSIX relativa |
Resultado | 4D.Folder | <- | Objeto carpeta creado (null si pathno es válido) |
Descripción
La función .folder()
crea un objeto Folder
dentro del objeto padre Folder
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 no es válido.
Ejemplo
var $mypicts : 4D.Folder
$mypicts:=Folder(fk documents folder).folder("Pictures")
.folders()
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.folders( { options : Integer } ) : Collection
Parámetros | Tipo | Descripción | |
---|---|---|---|
options | Integer | -> | Opciones de la lista de carpetas |
Resultado | 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 archivos o carpetas de la carpeta especificada y sus subcarpetas |
fk ignore invisible | 8 | Los archivos o carpetas 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
Histórico
Versión | Modificaciones |
---|---|
v17 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 sólo lectura.
.getIcon()
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.getIcon( { size : Integer } ) : Picture
Parámetros | Tipo | Descripción | |
---|---|---|---|
size | Integer | -> | Longitud del lado de la imagen devuelta (píxeles) |
Resultado | Imagen | <- | 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
Histórico
Versión | Modificaciones |
---|---|
v17 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 sólo lectura.
.isAlias
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.isAlias : Boolean
Descripción
La propiedad .isAlias
devuelve siempre false para un objeto Folder
.
Esta propiedad es de sólo lectura.
.isFile
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.isFile : Boolean
Descripción
La propiedad .isFile
devuelve siempre false para una carpeta.
Esta propiedad es de sólo lectura.
.isFolder
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.isFolder : Boolean
Descripción
La propiedad .isFolder
devuelve siempre true para una carpeta.
Esta propiedad es de sólo lectura.
.isPackage
Histórico
Versión | Modificaciones |
---|---|
v17 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 sólo lectura.
.modificationDate
Histórico
Versión | Modificaciones |
---|---|
v17 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 sólo lectura.
.modificationTime
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.modificationTime : Time
Descripción
La propiedad .modificationTime
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 sólo lectura.
.moveTo()
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.moveTo( destinationFolder : 4D.Folder { ; newName : Text } ) : 4D.Folder
Parámetros | Tipo | Descripción | |
---|---|---|---|
destinationFolder | 4D.Folder | -> | Carpeta de destino |
newName | Texto | -> | Nombre completo de la carpeta trasladada |
Resultado | 4D.Folder | <- | Carpeta movida |
Descripción
The .moveTo( )
function moves or renames the Folder
object (source folder) into the specified destinationFolder.
La destinationFolder debe existir en el disco, de lo contrario se genera un error.
By default, the folder retains its name when moved. If you want to rename the moved folder, pass the new full name in the newName parameter. 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
Histórico
Versión | Modificaciones |
---|---|
v17 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 sólo lectura.
.original
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.original : 4D.Folder
Descripción
La propiedad .original
devuelve el mismo objeto Folder que la carpeta.
Esta propiedad es de sólo lectura.
Esta propiedad está disponible en las carpetas para permitir que el código genérico procese carpetas o archivos.
.parent
Histórico
Versión | Modificaciones |
---|---|
v17 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 sistema (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 sólo lectura.
.path
Histórico
Versión | Modificaciones |
---|---|
v17 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 sólo lectura.
.platformPath
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.platformPath : Text
Descripción
La propiedad .platformPath
devuelve la ruta de la carpeta expresada con la sintaxis de la plataforma actual.
Esta propiedad es de sólo lectura.
.rename()
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.rename( newName : Text ) : 4D.Folder
Parámetros | Tipo | Descripción | |
---|---|---|---|
newName | Texto | -> | Nuevo nombre completo para la carpeta |
Resultado | 4D.Folder | <- | Carpeta renombrada |
Descripción
The .rename()
function renames the folder with the name you passed in newName and returns the renamed Folder
object.
The newName parameter must comply with naming rules (e.g., it must not contain characters such as ":", "/", etc.), otherwise an error is returned. If a file with the same name already exists, an error is returned.
Objeto devuelto
El objeto Folder
renombrado.
Ejemplo
var $toRename : 4D.Folder
$toRename:=Folder("/RESOURCES/Pictures").rename("Images")