Saltar al contenido principal
Versión: v20

File

Los objetos File se crean con el comando File. Contienen referencias a archivos de disco que pueden o no existir realmente en el disco. Por ejemplo, cuando se ejecuta el comando File para crear un nuevo archivo, se crea un objeto File válido, pero en realidad no se almacena nada en el disco hasta que se llama a la función file.create( ).

Ejemplo

El siguiente ejemplo crea un archivo de preferencias en la carpeta del proyecto:

var $created : Boolean
$created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create()

Rutas de acceso

Los objetos de tipo File soportan varios nombres de ruta, incluida las sintaxis filesystems o posix. Los nombres de ruta soportados se detallan en la página Pathnames.

Objeto File

.copyTo( destinationFolder : 4D.Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D.File    The .isFolder property returns
.create() : Boolean     crea un archivo en el disco según las propiedades del objeto File
.createAlias( destinationFolder : 4D.Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D.File    crea un alias (macOS) o un acceso directo (Windows)
.creationDate : Date    The .creationDate property returns
.creationTime : Time    la hora de creación del archivo
.delete()    elimina el archivo
.exists : Boolean    true si el archivo existe en el disco
.extension : Text    la extensión del nombre del archivo (si la hay)
.fullName : Text    el nombre completo del archivo, incluida su extensión (si la hay)
.getAppInfo() : Object    devuelve el contenido de un archivo de información .exe, .dll o .plist como un objeto
.getContent( ) : 4D.Blobdevuelve un objeto 4D.Blob que contiene todo el contenido de un archivo
.getIcon( { size : Integer } ) : Picture    el icono del archivo
.getText( { charSetName : Text { ; breakMode : Integer } } ) : Text
.getText( { charSetNum : Integer { ; breakMode : Integer } } ) : Text
    devuelve el contenido del archivo como texto
.hidden : Boolean    true si el archivo está definido como "oculto" a nivel del sistema
.isAlias : Boolean    true si el archivo es un alias, un acceso directo o un enlace simbólico
.isFile : Boolean    The .copyTo() function
.isFolder : Boolean    always true for a file
.isWritable : Boolean    true si el archivo existe en el disco y es escribible
.modificationDate : Date    The .modificationDate property returns
.modificationTime : Time    The .modificationTime property returns
.moveTo( destinationFolder : 4D.Folder { ; newName : Text } ) : 4D.File    mueve o renombra el objeto File en el destinationFolder especificado
.name : Text    el nombre del archivo sin extensión (si lo hay)
.open( { mode : Text } ) : 4D.FileHandle
.open( { options : Object } ) : 4D.FileHandle
    crea y devuelve un nuevo objeto 4D.FileHandle en el archivo, en el modo >especificado o con las opciones especificadas
.original : 4D.File
.original : 4D.Folder
    el elemento destino para un alias, un acceso directo o un archivo de enlace simbólico
.parent : 4D.Folder    The .parent property returns
.path : Text    The .path property returns
.platformPath : Text    The .platformPath property returns
.rename( newName : Text ): 4D.File    renombra el archivo con el nombre que se le ha pasado en newName y devuelve el objeto File renombrado
.setAppInfo( info : Object )    escribe las propiedades de info como contenido informativo de un archivo .exe, .dll o .plist
.setContent ( content : Blob )     reescribe todo el contenido del archivo utilizando los datos almacenados en el BLOB content
.setText ( text : Text {; charSetName : Text { ; breakMode : Integer } } )
.setText ( text : Text {; charSetNum : Integer { ; breakMode : Integer } } )
    escribe text como el nuevo contenido del archivo
.size : Real    el tamaño del archivo expresado en bytes

File

Histórico
VersiónModificaciones
v19 R4Nueva constante HTTP Client log file
v17 R5Añadidos

File ( path : Text { ; pathType : Integer }{ ; } ) : 4D.File
File (
fileConstant : Integer { ; } ) : 4D.File

ParámetrosTipoDescripción
pathText->Ruta del archivo
fileConstantInteger->Constante del archivo 4D
pathTypeInteger->fk posix path (por defecto) o fk platform path
*->* para devolver el archivo de la base local
Result4D.File<-Nuevo objeto de archivo

|

Descripción

El comando File crea y devuelve un nuevo objeto del tipo 4D.File. El comando acepta dos sintaxis:

File ( path { ; pathType } { ; * })

En el parámetro path, pase una ruta de archivo. Puede utilizar una cadena personalizada o un filesystem (por ejemplo, "/DATA/myfile.txt").

Sólo se admiten nombres de ruta absolutos con el comando File.

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:

ConstanteValorComentario
fk platform path1Ruta expresada con una sintaxis específica de la plataforma (obligatoria en caso de nombre de ruta de plataforma)
fk posix path0Ruta expresada con sintaxis POSIX (por defecto)

File ( fileConstant { ; * } )

En el parámetro fileConstant, pase un archivo 4D interno o sistema, utilizando una de las siguientes constantes:

ConstanteValorComentario
Backup history file19Archivo de historial de copias de seguridad (ver Archivos de configuración y rastreo). Se almacena en la carpeta de destino de la copia de seguridad.
Backup log file13Archivo historial de copias de seguridad actual. Almacenado en la carpeta Logs de la aplicación.
Backup settings file1Archivo backup.4DSettings por defecto (formato xml), almacenado en la carpeta Settings del proyecto
Backup settings file for data17archivo backup.4DSettings del archivo de datos (formato xml), almacenado en la carpeta Settings de la carpeta data
Build application log file14Archivo de historial actual en formato xml del generador de aplicaciones. Almacenado en la carpeta Logs.
Build application settings file20Archivo de configuración por defecto del generador de aplicaciones ("buildApp.4DSettings"). Almacenado en la carpeta Settings del proyecto.
Compacting log file6Archivo de historial de la compactación más reciente realizada con el comando Compact data file o el Centro de seguridad y mantenimiento. Almacenado en la carpeta Logs.
Current backup settings file18archivo backup.4DSettings utilizado actualmente por la aplicación. Puede ser el archivo de configuración de la copia de seguridad (por defecto) o un archivo de configuración de la copia de seguridad personalizado por el usuario definido para el archivo de datos
Debug log file12Archivo de registro creado por el comando SET DATABASE PARAMETER(Debug log recording). Almacenado en la carpeta Logs.
Diagnostic log file11Archivo de registro creado por el comando SET DATABASE PARAMETER(Diagnostic log recording). Almacenado en la carpeta Logs.
Directory file16archivo directory.json, que contiene la descripción de los usuarios y grupos (si los hay) del proyecto. Puede situarse en la carpeta user settings (por defecto, se aplica a todo el proyecto), o en la carpeta data settings (específica para un archivo de datos).
HTTP Client log file24Archivo de historial creado por el comando HTTP SET OPTION(HTTP client log). Almacenado en la carpeta Logs.
HTTP debug log file9Archivo de registro creado por el comando WEB SET OPTION(Web debug log). Almacenado en la carpeta Logs.
HTTP log file8Archivo de registro creado por el comando WEB SET OPTION(Web log recording). Almacenado en la carpeta Logs.
IMAP Log file23Archivo de registro creado por el comando SET DATABASE PARAMETER(IMAP Log). Almacenado en la carpeta Logs.
Last backup file2El último archivo de copia de seguridad, llamado \<applicationName>[bkpNum].4BK, se almacena en una ubicación personalizada.
Last journal integration log file22Nombre completo del último archivo de registro de integración del historial (almacenado en la carpeta Logs de la aplicación restaurada), si la hay. Este archivo se crea, en modo de reparación automática, tan pronto como se produce una integración de archivos de historial
Repair log file7Archivo de historial de las reparaciones realizadas en la base por el Centro de seguridad y mantenimiento (CSM). Almacenado en la carpeta Logs.
Request log file10Archivo de registro de peticiones cliente/servidor estándar (excluyendo las peticiones web) creado por los comandos SET DATABASE PARAMETER(4D Server log recording) o SET DATABASE PARAMETER(Client log recording). Si se ejecuta en el servidor, se devuelve el archivo de registro del servidor (almacenado en la carpeta Logs del servidor). Si se ejecuta en el cliente, se devuelve el archivo de registro del cliente (almacenado en la carpeta Logs local del cliente).
SMTP log file15Archivo de registro creado por el comando SET DATABASE PARAMETER(SMTP Log). Almacenado en la carpeta Logs.
User settings file3archivo settings.4DSettings para todos los archivos de datos, almacenados en la carpeta Preferences junto a la estructura del archivo si está activado.
User settings file for data4archivo settings.4DSettings para el archivo de datos actual, almacenado en la carpeta Preferences junto al archivo de datos.
Verification log file5Archivos de historial creados por los comandos VERIFY CURRENT DATA FILE y VERIFY DATA FILE o el Centro de seguridad y mantenimiento (CSM). Almacenado en la carpeta Logs.

Si el objetivo fileConstant no existe, se devuelve un objeto null. No se produce ningún error.

Si el comando se llama desde un componente, pase el parámetro opcional * para obtener la ruta de la base local. En caso contrario, si se omite el parámetro *, siempre se devuelve un objeto null.

4D.File.new()

Histórico
VersiónModificaciones
v18 R6Añadidos

4D.File.new ( path : Text { ; pathType : Integer }{ ; } ) : 4D.File
4D.File.new (
fileConstant : Integer { ; } ) : 4D.File

Descripción

La función 4D.File.new() crea y devuelve un nuevo objeto del tipo 4D.File. Es idéntico al comando File (acceso directo).

Se recomienda utilizar el comando de acceso directoFile< en lugar de 4D.File.new().

.copyTo()

Histórico
VersiónModificaciones
v17 R5Añadidos

.copyTo( destinationFolder : 4D.Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D.File

ParámetrosTipoDescripción
destinationFolder4D.Folder->Carpeta de destino
newNameText->Nombre para la copia
overwriteInteger->fk overwrite para sustituir los elementos existentes
Result4D.File<-Archivo copiado

Descripción

La función .copyTo() The .isFolder property returns .

La destinationFolder debe existir en el disco, de lo contrario se genera un error.

Por defecto, el archivo se copia con el nombre del archivo 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 un archivo 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

ConstanteValorComentario
fk overwrite4Sobrescribir los elementos existentes, si los hay

Valor devuelto

El objeto File copiado.

Ejemplo

Desea copiar un archivo imagen de la carpeta de documentos del usuario a la carpeta de la aplicación:

var $source; $copy : Object
$source:=Folder(fk documents folder).file("Pictures/photo.png")
$copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite)

.create()

Histórico
VersiónModificaciones
v17 R5Añadidos

No disponible para archivos ZIP

.create() : Boolean

ParámetrosTipoDescripción
ResultBoolean<-True si el archivo se ha creado con éxito, false en caso contrario

|

Descripción

La función .create() crea un archivo en el disco según las propiedades del objeto File.

Si es necesario, la función crea la jerarquía de carpetas como se describe en las propiedades platformPath o path. Si el archivo ya existe en el disco, la función no hace nada (no se lanza ningún error) y devuelve false.

Valor devuelto

  • True si el archivo se crea con éxito;
  • False si ya existe un archivo con el mismo nombre o si ha ocurrido un error.

Ejemplo

Creación de un archivo de preferencias en la carpeta principal:

 var $created : Boolean
$created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create()

.createAlias()

Histórico
VersiónModificaciones
v17 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
Result4D.File<-Referencia del archivo del alias o de atajo

|

Descripción

La función .createAlias() crea un alias (macOS) o un acceso directo (Windows) al archivo 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 un archivo en su carpeta principal:

 $myFile:=Folder(fk documents folder).file("Archives/ReadMe.txt")
$aliasFile:=$myFile.createAlias(File("/PACKAGE");"ReadMe")

.creationDate

Histórico
VersiónModificaciones
v17 R5Añadidos

.creationDate : Date

Descripción

La propiedad .creationDate devuelve The .creationDate property returns.

Esta propiedad es de sólo lectura.

.creationTime

Histórico
VersiónModificaciones
v17 R5Añadidos

.creationTime : Time

Descripción

La propiedad .creationTime devuelve la hora de creación del archivo (expresado como un número de segundos que comienza en 00:00).

Esta propiedad es de sólo lectura.

.delete()

Histórico
VersiónModificaciones
v17 R5Añadidos

.delete()

| Parámetros | Tipo | | Descripción | | ---------- | ---- | | ------------------------------------------------------- | | | | | No requiere ningún parámetro|

|

Descripción

La función .delete() elimina el archivo.

Si el archivo no existe en el disco, la función no hace nada (no se genera ningún error).

Si el archivo está abierto, el resultado depende del sistema operativo:

  • en Windows, se genera un error,
  • en macOS, no se genera ningún error y el archivo se elimina.
caution

.delete() puede eliminar cualquier archivo de un disco. Esto incluye los documentos creados con otras aplicaciones, así como las propias aplicaciones. .delete() debe utilizarse con extrema precaución. Eliminar un archivo es una operación permanente y no se puede deshacer.

Ejemplo

Desea eliminar un archivo específico en la carpeta de la base de datos:

 $tempo:=File("/PACKAGE/SpecialPrefs/"+Current user+".prefs")
If($tempo.exists)
$tempo.delete()
ALERT("User preference file deleted.")
End if
End if

.exists

Histórico
VersiónModificaciones
v17 R5Añadidos

.exists : Boolean

Descripción

La propiedad .exists devuelve true si el archivo existe en el disco, y false en caso contrario.

Esta propiedad es de sólo lectura.

.extension

Histórico
VersiónModificaciones
v17 R5Añadidos

.extension : Text

Descripción

La propiedad .extension devuelve la extensión del nombre del archivo (si la hay). Una extensión siempre comienza por ".". La propiedad .extension devuelve la extensión del nombre del archivo (si lo hay).

Esta propiedad es de sólo lectura.

.fullName

Histórico
VersiónModificaciones
v17 R5Añadidos

.fullName : Text

Descripción

La propiedad .fullName devuelve el nombre completo del archivo, incluida su extensión (si la hay).

Esta propiedad es de sólo lectura.

.getAppInfo()

Histórico
VersiónModificaciones
v19Añadidos

.getAppInfo() : Object

ParámetrosTipoDescripción
ResultObject<-Contenido del archivo de recurso versión .exe/.dll o .plist

|

Descripción

La función .getAppInfo() devuelve el contenido de un archivo de información .exe, .dll o .plist como un objeto.

La función debe utilizarse con un archivo .exe, .dll o .plist existente. Si el archivo no existe en el disco o no es un archivo .exe, .dll o .plist válido, la función devuelve un objeto vacío (no se genera ningún error).

La función sólo admite archivos .plist en formato xml (basados en texto). Se devuelve un error si se utiliza con un archivo .plist en formato binario.

Objeto devuelto con un archivo .exe o .dll

La lectura de un .exe o .dll sólo es posible en Windows.

Todos los valores de propiedades son de tipo Texto.

PropiedadTipo
InternalNameText
ProductNameText
CompanyNameText
LegalCopyrightText
ProductVersionText
FileDescriptionText
FileVersionText
OriginalFilenameText

Objeto devuelto con un archivo .plist

El contenido xml del archivo se analiza y las llaves se devuelven como propiedades del objeto, conservando sus tipos (texto, booleano, numérico). .plist dict se devuelve como un objeto JSON y .plist array se devuelve como un array JSON.

Ejemplo

 // mostrar información de copyright del archivo .exe de la aplicación (windows)
var $exeFile : 4D.File
var $info : Object
$exeFile:=File(Application file; fk platform path)
$info:=$exeFile.getAppInfo()
ALERT($info.LegalCopyright)

// mostrar información de copyright de un info.plist (cualquier plataforma)
var $infoPlistFile : 4D.File
var $info : Object
$infoPlistFile:=File("/RESOURCES/info.plist")
$info:=$infoPlistFile.getAppInfo()
ALERT($info.Copyright)

Ver también

.setAppInfo()

.getContent()

Histórico
VersiónModificaciones
v19 R2Devuelve 4D.Blob
v17 R5Añadidos

.getContent( ) : 4D.Blob

ParámetrosTipoDescripción
Result4D.Blob<-Contenido del archivo

Descripción

La función .getContent() devuelve un objeto 4D.Blob que contiene todo el contenido de un archivo. .

Valor devuelto

Un objeto 4D.Blob.

Ejemplo

Para guardar el contenido de un documento en un campo BLOB:

 var $vPath : Text
$vPath:=Select document("";"*";"Select a document";0)
If(OK=1) //Si se ha seleccionado un documento
[aTable]aBlobField:=File($vPath;fk platform path).getContent()
End if

.getIcon()

Histórico
VersiónModificaciones
v17 R5Añadidos

.getIcon( { size : Integer } ) : Picture

ParámetrosTipoDescripción
sizeInteger->Longitud del lado de la imagen devuelta (píxeles)
ResultPicture<-Icono

Descripción

La función .getIcon() devuelve el icono del archivo.

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 el archivo no existe en el disco, se devuelve un icono vacío por defecto.

Valor devuelto

Icono de archivo picture.

.getText()

Histórico
VersiónModificaciones
v17 R5Añadidos

.getText( { charSetName : Text { ; breakMode : Integer } } ) : Text
.getText( { charSetNum : Integer { ; breakMode : Integer } } ) : Text

ParámetrosTipoDescripción
charSetNameText->Nombre del juego de caracteres
charSetNumInteger->Número del conjunto de caracteres
breakModeInteger->Modo de tratamiento de los saltos de línea
ResultText<-Texto del documento

Descripción

La función .getText() devuelve el contenido del archivo como texto .

Opcionalmente, puede designar el conjunto de caracteres que se utilizará para leer el contenido. Puede pasar:

  • en charSetName, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"),
  • o en charSetNum, el ID MIBEnum (número) del nombre del conjunto estándar.

Para conocer la lista de los conjuntos de caracteres que soporta 4D, consulte la descripción del comando CONVERT FROM TEXT.

Si el documento contiene una marca de orden de bytes (BOM), 4D utiliza el conjunto de caracteres que ha establecido en lugar del especificado en charSetName o charSetNum (este parámetro se ignora entonces). Si el documento no contiene una BOM y si charSetName o charSetNum se omite, por defecto 4D utiliza el conjunto de caracteres "UTF-8".

En breakMode, se puede pasar un número que indica el procesamiento a aplicar a los caracteres de fin de línea en el documento. Las siguientes constantes del tema "Documentos del sistema" están disponibles:

ConstanteValorComentario
Document unchanged0Sin procesar
Document with native format1(Por defecto) Los saltos de línea se convierten al formato nativo del sistema operativo: CR (retorno de carro) en OS X, CRLF (retorno de carro + salto de línea) en Windows
Document with CRLF2Los saltos de línea se convierten al formato de Windows: CRLF (retorno de carro + salto de línea)
Document with CR3Los saltos de línea se convierten al formato OS X: CR (retorno de carro)
Document with LF4Los saltos de línea se convierten al formato Unix: LF (salto de línea)

Por defecto, cuando se omite el parámetro breakMode, los saltos de línea se procesan en modo nativo (1).

Valor devuelto

Texto del archivo.

Ejemplo

Dado el siguiente documento de texto (los campos están separados por tabulaciones):

id name price vat
3 thé 1.06€ 19.6
2 café 1.05€ 19.6

Cuando se ejecuta este código:

 $myFile:=Folder(fk documents folder).file("Billing.txt") //UTF-8 por defecto
$txt:=$myFile.getText()

... obtiene para $txt:

"id\tname\tprice\tvat\r\n3\tthé\t1.06€\t19.6\r\n2\tcafé\t1.05€\t19.6"

con \t (tab) como separador y \r\n (CRLF) como delimitador de línea.

Aquí hay otro ejemplo con el mismo archivo, pero con un delimitador de línea diferente:

 $txt:=$myFile.getText("UTF-8"; Document with LF)

En este caso, el contenido de $txt es el siguiente:

"id\tname\tprice\tvat\n3\tthé\t1.06€\t19.6\n2\tcafé\t1.05€\t19.6"

Esta vez se utiliza \n (LF) como delimitador de línea.

.hidden

Histórico
VersiónModificaciones
v17 R5Añadidos

.hidden : Boolean

Descripción

La propiedad .hidden devuelve true si el archivo está definido como "oculto" a nivel del sistema, y false en caso contrario.

Esta propiedad es lectura/escritura.

.isAlias

Histórico
VersiónModificaciones
v17 R5Añadidos

.isAlias : Boolean

Descripción

La propiedad .isAlias devuelve true si el archivo es un alias, un acceso directo o un enlace simbólico, y false en caso contrario.

Esta propiedad es de sólo lectura.

.isFile

Histórico
VersiónModificaciones
v17 R5Añadidos

.isFile : Boolean

Descripción

La propiedad .isFile devuelve The .copyTo() function.

Esta propiedad es de sólo lectura.

.isFolder

Histórico
VersiónModificaciones
v17 R5Añadidos

.isFolder : Boolean

Descripción

La propiedad .isFolder devuelve always true for a file.

Esta propiedad es de sólo lectura.

.isWritable

Histórico
VersiónModificaciones
v17 R5Añadidos

.isWritable : Boolean

Descripción

La propiedad .isWritable devuelve true si el archivo existe en el disco y es escribible.

La propiedad verifica la capacidad de la aplicación 4D a escribir en el disco (derechos de acceso), no se basa únicamente en el atributo writable del archivo.

Esta propiedad es de sólo lectura.

Ejemplo

 $myFile:=File("C:\\Documents\\Archives\\ReadMe.txt";fk platform path)
If($myFile.isWritable)
$myNewFile:=$myFile.setText("Added text")
End if

.modificationDate

Histórico
VersiónModificaciones
v17 R5Añadidos

.modificationDate : Date

Descripción

La propiedad .modificationDate devuelve The .modificationDate property returns.

Esta propiedad es de sólo lectura.

.modificationTime

Histórico
VersiónModificaciones
v17 R5Añadidos

.modificationTime : Time

Descripción

La propiedad .modificationTime devuelve The .modificationTime property returns (expresado como un número de segundos que comienza en 00:00).

Esta propiedad es de sólo lectura.

.moveTo()

Histórico
VersiónModificaciones
v17 R5Añadidos

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

ParámetrosTipoDescripción
destinationFolder4D.Folder->Carpeta de destino
newNameText->Nombre completo del archivo trasladado
Result4D.File<-Archivo movido

|

Descripción

La función .moveTo() mueve o renombra el objeto File en el destinationFolder especificado.

La destinationFolder debe existir en el disco, de lo contrario se genera un error.

Por defecto, el archivo conserva su nombre cuando se mueve. Si desea renombrar el archivo desplazado, 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 File desplazado.

Ejemplo

$DocFolder:=Folder(fk documents folder)
$myFile:=$DocFolder.file("Current/Infos.txt")
$myFile.moveTo($DocFolder.folder("Archives");"Infos_old.txt")

.name

Histórico
VersiónModificaciones
v17 R5Añadidos

.name : Text

Descripción

La propiedad .name devuelve el nombre del archivo sin extensión (si lo hay).

Esta propiedad es de sólo lectura.

.open()

Histórico
VersiónModificaciones
v19 R7Añadidos

.open( { mode : Text } ) : 4D.FileHandle
.open( { options : Object } ) : 4D.FileHandle

ParámetrosTipoDescripción
modeText->Modo de apertura: "read", "write", "append"
optionsObject->Opciones de apertura
Result4D.FileHandle<-Nuevo objeto File handle

|

Descripción

La función .open() crea y devuelve un nuevo objeto 4D.FileHandle en el archivo, en el modo >especificado o con las opciones especificadas. Puede utilizar las funciones y las propiedades de la clase 4D.FileHandle para escribir, leer o añadir contenido al archivo.

Si utiliza el parámetro mode (text), pase el modo de apertura para el file handle:

modeDescripción
"read"(Por defecto) Crea un file handle para leer los valores en el archivo. Si el archivo no existe en el disco, se devuelve un error. Puede abrir tantos file handles como quiera en modo "read" en el mismo objeto File.
"write"Crea un file handle para escribir valores en el archivo (empezando por el inicio del contenido del archivo). Si el archivo no existe en el disco, se crea. Sólo se puede abrir un file handle en modo "write" en el mismo objeto File.
"append"Crea un file handle para escribir los valores en el archivo (empezando por el final del contenido del archivo). Si el archivo no existe en el disco, se crea. Sólo se puede abrir un file handle en modo "append" en el mismo objeto File.

El valor mode distingue entre mayúsculas y minúsculas.

Si utiliza el parámetro options (object), puede pasar más opciones para el file handle a través de las siguientes propiedades (estas propiedades se pueden leer después desde el objeto file handle abierto):

optionsTipoDescripciónPor defecto
.modeTextModo de apertura (ver mode arriba)"read"
.charsetTextConjunto de caracteres utilizado al leer o escribir en el archivo. Utilice el nombre estándar del conjunto (por ejemplo, "ISO-8859-1" o "UTF-8")"UTF-8"
.breakModeReadTexto o númeroModo de procesamiento de los saltos de línea utilizados al leer el archivo (ver abajo)"native" o 1
.breakModeWriteTexto o númeroModo de procesamiento de los saltos de línea utilizados al escribir en el archivo (ver abajo)"native" o 1

La función reemplaza todos los delimitadores originales de final de línea. Por defecto, se utiliza el delimitador nativo, pero puede definir otro delimitador. .breakModeRead y .breakModeWrite indican el tratamiento a aplicar a los caracteres de fin de línea en el documento. Puede utilizar uno de los siguientes valores (texto o número):

Modo de ruptura en textoBreak mode en numérico (constante)Descripción
"native"1 (Document with native format)(Por defecto) Los saltos de línea se convierten al formato nativo del sistema operativo: LF (salto de línea) en macOS, CRLF (retorno de carro + salto de línea) en Windows
"crlf"2 (Document with CRLF)Los fines de línea se convierten en CRLF (retorno de carro + salto de línea), el formato predeterminado de Windows
"cr"3 (Document with CR)Los fines de línea se convierten en CR (retorno de carro), el formato clásico por defecto de Mac OS
"lf"4 (Document with LF)Los fines de línea se convierten en LF (salto de línea), el formato Unix y macOS por defecto

El valor del parámetro break mode as text es sensible a las mayúsculas y minúsculas.

Ejemplo

Quiere crear un file handle para leer el archivo "ReadMe.txt":

var $f : 4D.File
var $fhandle : 4D.FileHandle

$f:=File("C:\\Documents\\Archives\\ReadMe.txt";fk platform path)
$fhandle:=$f.open("read")

.original

Histórico
VersiónModificaciones
v17 R5Añadidos

.original : 4D.File
.original : 4D.Folder

Descripción

La propiedad .original devuelve el elemento destino para un alias, un acceso directo o un archivo de enlace simbólico. El elemento objetivo puede ser:

  • un objeto File
  • un objeto de la carpeta

Para los archivos sin alias, la propiedad devuelve el mismo objeto File que el archivo.

Esta propiedad es de sólo lectura.

.parent

Histórico
VersiónModificaciones
v17 R5Añadidos

.parent : 4D.Folder

Descripción

La propiedad .parent devuelve The .parent property returns. Si la ruta representa una ruta del sitema (por ejemplo, "/DATA/"), se devuelve la ruta del sistema.

Esta propiedad es de sólo lectura.

.path

Histórico
VersiónModificaciones
v17 R5Añadidos

.path : Text

Descripción

La propiedad .path devuelve The .path property returns. Si la ruta representa un filesystem (por ejemplo, "/DATA/"), se devuelve el filesystem.

Esta propiedad es de sólo lectura.

.platformPath

Histórico
VersiónModificaciones
v17 R5Añadidos

.platformPath : Text

Descripción

La propiedad .platformPath devuelve The .platformPath property returns.

Esta propiedad es de sólo lectura.

.rename()

Histórico
VersiónModificaciones
v17 R5Añadidos

.rename( newName : Text ): 4D.File

ParámetrosTipoDescripción
newNameText->Nuevo nombre completo del archivo
Result4D.File<-Archivo renombrado

|

Descripción

La función .rename() renombra el archivo con el nombre que se le ha pasado en newName y devuelve el objeto File 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.

Tenga en cuenta que la función modifica el nombre completo del archivo, es decir, si no pasa una extensión en newName, el archivo tendrá un nombre sin extensión.

Objeto devuelto

El objeto File renombrado.

Ejemplo

Quiere renombrar "ReadMe.txt" como "ReadMe_new.txt":

 $toRename:=File("C:\\Documents\\Archives\\ReadMe.txt";fk platform path)
$newName:=$toRename.rename($toRename.name+"_new"+$toRename.extension)

.setAppInfo()

Histórico
VersiónModificaciones
v20Soporte de WinIcon
v19Añadidos

.setAppInfo( info : Object )

ParámetrosTipoDescripción
infoObject->Propiedades a escribir en el archivo .plist o el recurso versión del archivo .exe/.dll

|

Descripción

La función .setAppInfo() escribe las propiedades de info como contenido informativo de un archivo .exe, .dll o .plist.

La función debe utilizarse con un archivo .exe, .dll o .plist existente. Si el archivo no existe en el disco o no es un archivo .exe, .dll o .plist válido, la función no hace nada (no se genera ningún error).

La función sólo admite archivos .plist en formato xml (basados en texto). Se devuelve un error si se utiliza con un archivo .plist en formato binario.

Parámetro info con un archivo .exe o .dll

Escribir la información de archivos .exe o .dll sólo es posible en Windows.

Cada propiedad válida definida en el parámetro objeto info se escribe en el recurso de versión del archivo .exe o .dll. Las propiedades disponibles son (toda otra propiedad será ignorada):

PropiedadTipoComentario
InternalNameText
ProductNameText
CompanyNameText
LegalCopyrightText
ProductVersionText
FileDescriptionText
FileVersionText
OriginalFilenameText
WinIconTextRuta Posix del archivo .ico. Esta propiedad sólo se aplica a los archivos ejecutables generados por 4D.

Para todas las propiedades excepto WinIcon, si se pasa un texto nulo o vacío como valor, se escribe una cadena vacía en la propiedad. Si pasa un valor de tipo diferente a texto, se convierte en una cadena.

Para la propiedad WinIcon, si el archivo del icono no existe o tiene un formato incorrecto, se genera un error.

Parámetro info con un un archivo .plist

Cada propiedad válida definida en el parámetro objeto info se escribe en el archivo .plist en forma de llave. Se aceptan todos los nombre de llaves. Los tipos de valores se conservan cuando es posible.

Si un conjunto de llaves en el parámetro info ya está definido en el archivo .plist, su valor se actualiza manteniendo su tipo original. Las demás llaves existentes en el archivo .plist no se modifican.

Para definir un valor de tipo Fecha, el formato a utilizar es una cadena de timestamp json formada en ISO UTC sin milisegundos ("2003-02-01T01:02:03Z") como en el editor de plist Xcode.

Ejemplo

  // definir el copyright y versión de un archivo .exe (Windows)
var $exeFile; $iconFile : 4D.File
var $info : Object
$exeFile:=File(Application file; fk platform path)
$iconFile:=File("/RESOURCES/myApp.ico")
$info:=New object
$info.LegalCopyright:="Copyright 4D 2023"
$info.ProductVersion:="1.0.0"
$info.WinIcon:=$iconFile.path
$exeFile.setAppInfo($info)
  // definir algunas llaves en un archivo info.plist (todas las plataformas)
var $infoPlistFile : 4D.File
var $info : Object
$infoPlistFile:=File("/RESOURCES/info.plist")
$info:=New object
$info.Copyright:="Copyright 4D 2023" //text
$info.ProductVersion:=12 //integer
$info.ShipmentDate:="2023-04-22T06:00:00Z" //timestamp
$info.CFBundleIconFile:="myApp.icns" //for macOS
$infoPlistFile.setAppInfo($info)

Ver también

.getAppInfo()

.setContent()

Histórico
VersiónModificaciones
v17 R5Añadidos

.setContent ( content : Blob )

ParámetrosTipoDescripción
contentBLOB->Nuevos contenidos para el archivo

|

Descripción

La función .setContent( ) reescribe todo el contenido del archivo utilizando los datos almacenados en el BLOB content. .

Ejemplo

 $myFile:=Folder(fk documents folder).file("Archives/data.txt")
$myFile.setContent([aTable]aBlobField)

.setText()

Histórico
VersiónModificaciones
v19 R3Por defecto para los nuevos proyectos: sin BOM y (macOS) LF para EOL
v17 R5Añadidos

.setText ( text : Text {; charSetName : Text { ; breakMode : Integer } } )
.setText ( text : Text {; charSetNum : Integer { ; breakMode : Integer } } )

ParámetrosTipoDescripción
textText->Texto a almacenar en el archivo
charSetNameText->Nombre del juego de caracteres
charSetNumInteger->Número del conjunto de caracteres
breakModeInteger->Modo de tratamiento de los retornos de línea

|

Descripción

La función .setText() escribe text como el nuevo contenido del archivo.

Si el archivo referenciado en el objeto File no existe en el disco, la función lo crea. Cuando el archivo ya existe en el disco, se borra su contenido anterior, excepto si ya está abierto, en cuyo caso se bloquea su contenido y se genera un error.

En text, pase el texto a escribir en el archivo. Puede ser un texto literal ("my text"), o un campo / variable texto 4D.

Opcionalmente, puede designar el conjunto de caracteres que se utilizará para la escritura del contenido. Puede pasar:

  • en charSetName, una cadena que contiene el nombre del conjunto estándar (por ejemplo "ISO-8859-1" o "UTF-8"),
  • o en charSetNum, el ID MIBEnum (número) del nombre del conjunto estándar.

Para conocer la lista de los conjuntos de caracteres que soporta 4D, consulte la descripción del comando CONVERT FROM TEXT.

Si existe una marca de orden de bytes (BOM) para el conjunto de caracteres, 4D la inserta en el archivo a menos que el conjunto de caracteres utilizado contenga el sufijo "-no-bom" (por ejemplo, "UTF-8-no-bom"). Si no especifica un conjunto de caracteres, por defecto 4D utiliza el conjunto de caracteres "UTF-8" sin BOM.

En breakMode, se puede pasar un número que indica el procesamiento a aplicar a los caracteres de fin de línea antes de guardarlos en el archivo. Las siguientes constantes, que se encuentran en el tema Documentos sistema, están disponibles:

ConstanteValorComentario
Document unchanged0Sin procesar
Document with native format1(Por defecto) Los saltos de línea se convierten al formato nativo del sistema operativo: LF (salto de línea) en macOS, CRLF (salto de línea + retorno de carro) en Windows
Document with CRLF2Los fines de línea se convierten en CRLF (retorno de carro + salto de línea), el formato predeterminado de Windows
Document with CR3Los fines de línea se convierten en CR (retorno de carro), el formato clásico por defecto de Mac OS
Document with LF4Los fines de línea se convierten en LF (salto de línea), el formato Unix y macOS por defecto

Por defecto, cuando se omite el parámetro breakMode, los saltos de línea se procesan en modo nativo (1).

Nota de compatibilidad: las opciones de compatibilidad están disponibles para la gestión de EOL y de BOM. VerPágina Compatibilidad en doc.4d.com.

Ejemplo

$myFile:=File("C:\\Documents\\Hello.txt";fk platform path)
$myFile.setText("Hello world")

.size

Histórico
VersiónModificaciones
v17 R5Añadidos

.size : Real

Descripción

La propiedad .size devuelve el tamaño del archivo expresado en bytes. Si el archivo no existe en el disco, el tamaño es 0.

Esta propiedad es de sólo lectura.