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 ejecuta el comando File
para crear un nuevo archivo, se crea un objeto File
válido pero en realidad nada se guarda 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 File
soportan varios nombres de ruta, incluyendo la sintaxis filesystems
o posix
. Los nombres de ruta soportados se detallan en la página Rutas de acceso.
Objeto File
.copyTo( destinationFolder : 4D.Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D.File copia el objeto File en la destinationFolder especificada |
.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 la fecha de creación del archivo |
.creationTime : Time la hora de creación del archivo |
.delete() borra el archivo |
.exists : Boolean true si el archivo existe en el disco |
.extension : Text la extensión del nombre del archivo (si lo hay) |
.fullName : Text el nombre completo del archivo, incluyendo 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á configurado como "oculto" a nivel de sistema |
.isAlias : Boolean true si el archivo es un alias, un acceso directo o un enlace simbólico |
.isFile : Boolean siempre true para un archivo |
.isFolder : Boolean siempre false para un archivo |
.isWritable : Boolean true si el archivo existe en el disco y es modificable |
.modificationDate : Date la fecha de la última modificación del archivo |
.modificationTime : Time la hora de la última modificación del archivo |
.moveTo( destinationFolder : 4D.Folder { ; newName : Text } ) : 4D.File mueve o renombra el objeto File en la carpeta especificada destinationFolder |
.name : Text el nombre del archivo, sin extensión (si la 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 |
.parent : 4D.Folder el objeto carpeta padre del archivo |
.path : Text la ruta POSIX del archivo |
.platformPath : Text la ruta del archivo expresada con la sintaxis de la plataforma actual |
.rename( newName : Text ) : 4D.File renombra el archivo con el nombre que se ha pasado en newName y devuelve el objeto File renombrado |
.setAppInfo( info : Object ) escribe las propiedades info como contenido de información 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 |
4D.File.new()
Historia
Lanzamiento | Modificaciones |
---|---|
18 R6 | Añ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 de tipo 4D.File
. Es idéntico al comando File
(atajo).
Se recomienda utilizar el comando de acceso directo
File
en lugar de4D.File.new()
.
.copyTo()
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.copyTo( destinationFolder : 4D.Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D.File
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.File | <- | Archivo copiado |
Descripción
La función .copyTo()
copia el objeto File
en la destinationFolder especificada.
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
Constante | Valor | Comentario |
---|---|---|
fk overwrite | 4 | Sobrescribir los elementos existentes, si los hay |
Valor devuelto
El objeto File
copiado.
Ejemplo
Desea copiar un file 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()
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
No disponible para archivos ZIP
.create() : Boolean
Parámetros | Tipo | Descripción | |
---|---|---|---|
Result | Boolean | <- | 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()
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 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:
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 un archivo en su carpeta principal:
$myFile:=Folder(fk documents folder).file("Archives/ReadMe.txt")
$aliasFile:=$myFile.createAlias(File("/PACKAGE");"ReadMe")
.creationDate
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.creationDate : Date
Descripción
La propiedad .creationDate
devuelve la fecha de creación del archivo.
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 del archivo (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()
Parámetros | Tipo | Descripción | |
---|---|---|---|
No requiere ningún parámetro |
Descripción
La función .delete()
borra 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.
.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
.exists
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añ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 solo lectura.
.extension
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.extension : Text
Descripción
La propiedad .extension
devuelve la extensión del nombre del archivo (si lo 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 solo lectura.
.fullName
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.fullName : Text
Descripción
La propiedad .fullName
devuelve el nombre completo del archivo, incluyendo su extensión (si la hay).
Esta propiedad es de solo lectura.
.getAppInfo()
Historia
Lanzamiento | Modificaciones |
---|---|
19 | Añadidos |
.getAppInfo() : Object
Parámetros | Tipo | Descripción | |
---|---|---|---|
Result | Object | <- | 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.
Propiedad | Tipo |
---|---|
InternalName | Text |
ProductName | Text |
CompanyName | Text |
LegalCopyright | Text |
ProductVersion | Text |
FileDescription | Text |
FileVersion | Text |
OriginalFilename | Text |
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
.getContent()
Historia
Lanzamiento | Modificaciones |
---|---|
19 R2 | Devuelve 4D.Blob |
17 R5 | Añadidos |
.getContent( ) : 4D.Blob
Parámetros | Tipo | Descripción | |
---|---|---|---|
Result | 4D.Blob | <- | Contenido del archivo |
Descripción
La función .getContent()
devuelve un objeto 4D.Blob
que contiene todo el contenido de un archivo. Para obtener información sobre BLOBs, consulte la sección BLOB.
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()
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 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
Imagen del icono del archivo.
.getText()
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.getText( { charSetName : Text { ; breakMode : Integer } } ) : Text
.getText( { charSetNum : Integer { ; breakMode : Integer } } ) : Text
Parámetros | Tipo | Descripción | |
---|---|---|---|
charSetName | Text | -> | Nombre del juego de caracteres |
charSetNum | Integer | -> | Número del conjunto de caracteres |
breakMode | Integer | -> | Modo de tratamiento de los saltos de línea |
Result | Text | <- | 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 definido en lugar del especificado en charSetName o charSetNum (este parámetro entonces se ignora). 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:
Constante | Valor | Comentario |
---|---|---|
Document unchanged | 0 | Sin procesar |
Document with native format | 1 | (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 CRLF | 2 | Los saltos de línea se convierten al formato de Windows: CRLF (retorno de carro + salto de línea) |
Document with CR | 3 | Los saltos de línea se convierten al formato OS X: CR (retorno de carro) |
Document with LF | 4 | Los 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 lo siguiente 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 \n
(LF) se utiliza como delimitador de línea.
.hidden
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.hidden : Boolean
Descripción
La propiedad .hidden
devuelve true si el archivo está configurado como "oculto" a nivel de sistema, y false en caso contrario.
Esta propiedad es lectura-escritura.
.isAlias
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añ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 solo lectura.
.isFile
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.isFile : Boolean
Descripción
La propiedad .isFile
devuelve siempre true para un archivo.
Esta propiedad es de solo lectura.
.isFolder
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.isFolder : Boolean
Descripción
La propiedad .isFolder
devuelve siempre false para un archivo.
Esta propiedad es de solo lectura.
.isWritable
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.isWritable : Boolean
Descripción
La propiedad .isWritable
devuelve true si el archivo existe en el disco y es modificable.
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 solo lectura.
Ejemplo
$myFile:=File("C:\\Documents\\Archives\\ReadMe.txt";fk platform path)
If($myFile.isWritable)
$myNewFile:=$myFile.setText("Added text")
End if
.modificationDate
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.modificationDate : Date
Descripción
La propiedad .modificationDate
devuelve la fecha de la última modificación del archivo.
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 del archivo (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.File
Parámetros | Tipo | Descripción | |
---|---|---|---|
destinationFolder | 4D.Folder | -> | Carpeta de destino |
newName | Text | -> | Nombre completo del archivo trasladado |
Result | 4D.File | <- | Archivo movido |
Descripción
La función .moveTo()
mueve o renombra el objeto File
en la carpeta especificada destinationFolder.
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
movido.
Ejemplo
$DocFolder:=Folder(fk documents folder)
$myFile:=$DocFolder.file("Current/Infos.txt")
$myFile.moveTo($DocFolder.folder("Archives");"Infos_old.txt")
.name
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.name : Text
Descripción
La propiedad .name
devuelve el nombre del archivo, sin extensión (si la hay).
Esta propiedad es de solo lectura.
.open()
Historia
Lanzamiento | Modificaciones |
---|---|
19 R7 | Añadidos |
.open( { mode : Text } ) : 4D.FileHandle
.open( { options : Object } ) : 4D.FileHandle
Parámetros | Tipo | Descripción | |
---|---|---|---|
mode | Text | -> | Modo de apertura: "read", "write", "append" |
options | Object | -> | Opciones de apertura |
Result | 4D.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 propiedades de la clase 4D.FileHandle para escribir, leer o añadir contenido al archivo.
Si utiliza el parámetro mode (texto), pase el modo de apertura para el file handle:
mode | Descripció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 de mode es sensible a las 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):
opciones | Tipo | Descripción | Por defecto |
---|---|---|---|
.mode | Text | Modo de apertura (ver mode arriba) | "read" |
.charset | Text | Conjunto 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" |
.breakModeRead | Texto o número | Modo de procesamiento de los saltos de línea utilizados al leer el archivo (ver abajo) | "native" o 1 |
.breakModeWrite | Texto o número | Modo 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. Las propiedades .breakModeRead
y .breakModeWrite
indican el procesamiento 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 texto | Break 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
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.original : 4D.File
.original : 4D.Folder
Descripción
La propiedad .original
devuelveel elemento de 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 solo lectura.
.parent
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.parent : 4D.Folder
Descripción
La propiedad .parent
devuelve el objeto carpeta padre del archivo. Si la ruta representa una ruta del sitema (por ejemplo, "/DATA/"), se devuelve la ruta del sistema.
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 del archivo. 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.File
Parámetros | Tipo | Descripción | |
---|---|---|---|
newName | Text | -> | Nuevo nombre completo del archivo |
Result | 4D.File | <- | Archivo renombrado |
Descripción
La función .rename()
renombra el archivo con el nombre que se 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()
Historia
Lanzamiento | Modificaciones |
---|---|
20 | Soporte de WinIcon |
19 | Añadidos |
.setAppInfo( info : Object )
Parámetros | Tipo | Descripción | |
---|---|---|---|
info | Object | -> | 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 info como contenido de información 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):
Propiedad | Tipo | Comentario |
---|---|---|
InternalName | Text | |
ProductName | Text | |
CompanyName | Text | |
LegalCopyright | Text | |
ProductVersion | Text | |
FileDescription | Text | |
FileVersion | Text | |
OriginalFilename | Text | |
WinIcon | Text | Ruta 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
.setContent()
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.setContent ( content : Blob )
Parámetros | Tipo | Descripción | |
---|---|---|---|
content | BLOB | -> | 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. Para obtener información sobre BLOBs, consulte la sección BLOB.
Ejemplo
$myFile:=Folder(fk documents folder).file("Archives/data.txt")
$myFile.setContent([aTable]aBlobField)
.setText()
Historia
Lanzamiento | Modificaciones |
---|---|
19 R3 | Por defecto para los nuevos proyectos: sin BOM y (macOS) LF para EOL |
17 R5 | Añadidos |
.setText ( text : Text {; charSetName : Text { ; breakMode : Integer } } )
.setText ( text : Text {; charSetNum : Integer { ; breakMode : Integer } } )
Parámetros | Tipo | Descripción | |
---|---|---|---|
text | Text | -> | Texto a almacenar en el archivo |
charSetName | Text | -> | Nombre del juego de caracteres |
charSetNum | Integer | -> | Número del conjunto de caracteres |
breakMode | Integer | -> | Modo de tratamiento de los saltos 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:
Constante | Valor | Comentario |
---|---|---|
Document unchanged | 0 | Sin procesar |
Document with native format | 1 | (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 CRLF | 2 | Los fines de línea se convierten en CRLF (retorno de carro + salto de línea), el formato predeterminado de Windows |
Document with CR | 3 | Los fines de línea se convierten en CR (retorno de carro), el formato clásico por defecto de Mac OS |
Document with LF | 4 | Los 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. Ver la página Compatibilidad en doc.4d.com.
Ejemplo
$myFile:=File("C:\\Documents\\Hello.txt";fk platform path)
$myFile.setText("Hello world")
.size
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añ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 solo lectura.