File
File
objects are created with the File
command. Ils contiennent des références à des fichiers du disque qui peuvent exister réellement ou non sur le disque. For example, when you execute the File
command to create a new file, a valid File
object is created but nothing is actually stored on disk until you call the file.create( )
function.
Exemple
L'exemple suivant crée un fichier de préférences dans le dossier du projet :
var $created : Boolean
$created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create()
Chemins d'accès
File
objects support several pathnames, including filesystems
or posix
syntax. Supported pathnames are detailed in the Pathnames page.
Objet File
.copyTo( destinationFolder : 4D.Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D.File copies the File object into the specified destinationFolder |
.create() : Boolean creates a file on disk according to the properties of the File object |
.createAlias( destinationFolder : 4D.Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D.File creates an alias (macOS) or a shortcut (Windows) |
.creationDate : Date the creation date of the file |
.creationTime : Time the creation time of the file |
.delete() deletes the file |
.exists : Boolean true if the file exists on disk |
.extension : Text the extension of the file name (if any) |
.fullName : Text the full name of the file, including its extension (if any) |
.getAppInfo() : Object returns the contents of a .exe, .dll or .plist file information as an object |
.getContent( ) : 4D.Blobreturns a 4D.Blob object containing the entire content of a file |
.getIcon( { size : Integer } ) : Picture the icon of the file |
.getText( { charSetName : Text { ; breakMode : Integer } } ) : Text .getText( { charSetNum : Integer { ; breakMode : Integer } } ) : Text returns the contents of the file as text |
.hidden : Boolean true if the file is set as "hidden" at the system level |
.isAlias : Boolean true if the file is an alias, a shortcut, or a symbolic link |
.isFile : Boolean always true for a file |
.isFolder : Boolean always false for a file |
.isWritable : Boolean true if the file exists on disk and is writable |
.modificationDate : Date the date of the file's last modification |
.modificationTime : Time the time of the file's last modification |
.moveTo( destinationFolder : 4D.Folder { ; newName : Text } ) : 4D.File moves or renames the File object into the specified destinationFolder |
.name : Text the name of the file without extension (if any) |
.open( { mode : Text } ) : 4D.FileHandle .open( { options : Object } ) : 4D.FileHandle creates and returns a new 4D.FileHandle object on the file, in the specified mode or with the specified options |
.original : 4D.File .original : 4D.Folder the target element for an alias, a shortcut, or a symbolic link file |
.parent : 4D.Folder the parent folder object of the file |
.path : Text the POSIX path of the file |
.platformPath : Text the path of the file expressed with the current platform syntax |
.rename( newName : Text ) : 4D.File renames the file with the name you passed in newName and returns the renamed File object |
.setAppInfo( info : Object ) writes the info properties as information contents of a .exe, .dll or .plist file |
.setContent ( content : Blob ) rewrites the entire content of the file using the data stored in the content BLOB |
.setText ( text : Text {; charSetName : Text { ; breakMode : Integer } } ) .setText ( text : Text {; charSetNum : Integer { ; breakMode : Integer } } ) writes text as the new contents of the file |
.size : Real the size of the file expressed in bytes |
File
Historique
Release | Modifications |
---|---|
19 R4 | New HTTP Client log file constant |
17 R5 | Ajout |
File ( path : Text { ; pathType : Integer }{ ; } ) : 4D.File
File ( fileConstant : Integer { ; } ) : 4D.File
Paramètres | Type | Description | |
---|---|---|---|
path | Text | -> | Chemin de fichier |
fileConstant | Integer | -> | Constante de fichier 4D |
pathType | Integer | -> | fk posix path (default) or fk platform path |
- | -> | * pour retourner le fichier de la base hôte | |
Résultat | 4D.File | <- | Nouvel objet fichier |
Description
The File
command creates and returns a new object of the 4D.File
type. La commande accepte deux syntaxes :
File ( path { ; pathType } { ; * })
In the path parameter, pass a file path string. Vous pouvez utiliser une chaine personnalisée ou un "filesystem" (ex : "/DATA/myfile.txt").
Only absolute pathnames are supported with the
File
command.
Par défaut, 4D attend un chemin exprimé avec la syntaxe POSIX. If you work with platform pathnames (Windows or macOS), you must declare it using the pathType parameter. Les constantes suivantes sont disponibles :
Constante | Valeur | Commentaire |
---|---|---|
fk platform path | 1 | Chemin exprimé dans une syntaxe spécifique à la plate-forme (obligatoire en cas de chemin de plate-forme) |
fk posix path | 0 | Chemin exprimé avec la syntaxe POSIX (par défaut) |
File ( fileConstant { ; * } )
In the fileConstant parameter, pass a 4D built-in or system file, using one of the following constants:
Constante | Valeur | Commentaire |
---|---|---|
Backup history file | 19 | Fichier d'historique des sauvegardes (voir Fichiers de configuration et de suivi). Stocké dans le dossier de destination de sauvegarde. |
Backup log file | 13 | Fichier journal des sauvegardes courant. Stocké dans le dossier Logs de l'application. |
Backup settings file | 1 | Fichier backup.4DSettings par défaut (format xml), stocké dans le dossier Settings du projet |
Backup settings file for data | 17 | fichier backup.4DSettings du fichier de données (format xml), stocké dans le dossier Settings du dossier data |
Build application log file | 14 | Fichier d'historique courant au format xml du générateur d'application. Stocké dans le dossier Logs. |
Build application settings file | 20 | Fichier de configuration par défaut du générateur d'application ("buildApp.4DSettings"). Stocké dans le dossier Settings du projet. |
Compacting log file | 6 | Fichier d'historique du compactage le plus récent de la base, effectué avec la commande Compact data file ou le Centre de sécurité et de maintenance (CSM). Stocké dans le dossier Logs. |
Current backup settings file | 18 | fichier backup.4DSettings utilisé actuellement par l'application. Il peut s'agir du fichier backup.4DSettings par défaut ou d'un fichier de settings de backup utilisateur défini pour le fichier de données |
Debug log file | 12 | Log file created by the SET DATABASE PARAMETER(Debug log recording) command. Stocké dans le dossier Logs. |
Diagnostic log file | 11 | Log file created by the SET DATABASE PARAMETER(Diagnostic log recording) command. Stocké dans le dossier Logs. |
Directory file | 16 | fichier directory.json, contenant la description des groupes et utilisateurs (le cas échéant) du projet. Il se situe soit dans le dossier Settings de l'utilisateur (par défaut, s'applique à tout le projet), soit dans le dossier Settings du data (spécifique à un fichier de données). |
HTTP Client log file | 24 | Log file created by the HTTP SET OPTION(HTTP client log) command. Stocké dans le dossier Logs. |
HTTP debug log file | 9 | Log file created by the WEB SET OPTION(Web debug log) command. Stocké dans le dossier Logs. |
HTTP log file | 8 | Log file created by the WEB SET OPTION(Web log recording) command. Stocké dans le dossier Logs. |
IMAP Log file | 23 | Log file created by the SET DATABASE PARAMETER(IMAP Log) command. Stocké dans le dossier Logs. |
Last backup file | 2 | Last backup file, named \<applicationName>[bkpNum].4BK , stored at a custom location. |
Last journal integration log file | 22 | Chemin complet du dernier fichier journal d'intégration de l'historique (stocké dans le dossier Logs de l'application restaurée), le cas échéant. Ce fichier est créé en mode auto-repair, dès qu'une intégration de fichier d'historique a lieu |
Repair log file | 7 | Fichier d'historique des réparations effectuées sur la base par le Centre de sécurité et de maintenance (CSM). Stocké dans le dossier Logs. |
Request log file | 10 | Standard client/server request log file (excluding Web requests) created by the SET DATABASE PARAMETER(4D Server log recording) or SET DATABASE PARAMETER(Client log recording) commands. Si la commande est appelée sur le serveur, le chemin du fichier des requêtes du serveur est retourné (stocké dans le dossier Logs du serveur). Si la commande est appelée sur un client, le chemin du fichier des requêtes du client est retourné (stocké dans le dossier Logs local du client). |
SMTP log file | 15 | Log file created by the SET DATABASE PARAMETER(SMTP Log) command. Stocké dans le dossier Logs. |
User settings file | 3 | Fichier settings.4DSettings pour tous les fichiers de données (si activé), stocké dans le dossier Preferences à côté du fichier de structure. |
User settings file for data | 4 | Fichier settings.4DSettings file pour le fichier de données courant, stocké dans le dossier Preferences à côté du fichier de données. |
Verification log file | 5 | Log files created by the VERIFY CURRENT DATA FILE and VERIFY DATA FILE commands or the Maintenance and Security Center (MSC). Stocké dans le dossier Logs. |
If the target fileConstant does not exist, a null object is returned. Aucune erreur n'est générée.
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.File.new()
Historique
Release | Modifications |
---|---|
18 R6 | Ajout |
4D.File.new ( path : Text { ; pathType : Integer }{ ; * } ) : 4D.File
4D.File.new ( fileConstant : Integer { ; * } ) : 4D.File
Description
The 4D.File.new()
function creates and returns a new object of the 4D.File
type. It is identical to the File
command (shortcut).
It is recommended to use the
File
shortcut command instead of4D.File.new()
.
.copyTo()
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.copyTo( destinationFolder : 4D.Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D.File
Paramètres | Type | Description | |
---|---|---|---|
dossierDestination | 4D.Folder | -> | Dossier de destination |
nouveauNom | Text | -> | Nom de la copie |
overwrite | Integer | -> | fk overwrite to replace existing elements |
Résultat | 4D.File | <- | Fichier copié |
Description
The .copyTo()
function copies the File
object into the specified destinationFolder .
The destinationFolder must exist on disk, otherwise an error is generated.
Par défaut, le fichier est copié avec le nom du fichier original. If you want to rename the copy, pass the new name in the newName parameter. Le nouveau nom doit être conforme aux règles de nommage (ex : il ne doit pas contenir de caractères tels que ":", "/", etc.), sinon une erreur est retournée.
If a file with the same name already exists in the destinationFolder, by default 4D generates an error. You can pass the fk overwrite
constant in the overwrite parameter to ignore and overwrite the existing file
Constante | Valeur | Commentaire |
---|---|---|
fk overwrite | 4 | Écrase les éléments existants, le cas échéant |
Valeur retournée
The copied File
object.
Exemple
You want to copy a picture file from the user's document folder to the application folder:
var $source; $copy : Object
$source:=Folder(fk documents folder).file("Pictures/photo.png")
$copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite)
.create()
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
Not available for ZIP archives
.create() : Boolean
Paramètres | Type | Description | |
---|---|---|---|
Résultat | Boolean | <- | Vrai si le fichier a été créé avec succès, sinon Faux |
Description
The .create()
function creates a file on disk according to the properties of the File
object.
If necessary, the function creates the folder hierachy as described in the platformPath or path properties. Si le fichier existe déjà sur disque, la fonction ne fait rien (aucune erreur n'est générée) et retourne faux.
Valeur retournée
- True if the file is created successfully;
- False if a file with the same name already exists or if an error occured.
Exemple
Création d'un fichier de préférences dans le dossier principal :
var $created : Boolean
$created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create()
.createAlias()
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.createAlias( destinationFolder : 4D.Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D.File
Paramètres | Type | Description | |
---|---|---|---|
dossierDestination | 4D.Folder | -> | Dossier de destination pour l'alias ou le raccourci |
aliasName | Text | -> | Nom de l'alias ou du raccourci |
aliasType | Integer | -> | Type de lien de l'alias |
Résultat | 4D.File | <- | Référence du fichier de l'alias ou du raccourci |
Description
The .createAlias()
function creates an alias (macOS) or a shortcut (Windows) to the file 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.
Par défaut sur macOS, la fonction crée un alias standard. You can also create a symbolic link by using the aliasType parameter. Les constantes suivantes sont disponibles :
Constante | Valeur | Commentaire |
---|---|---|
fk alias link | 0 | Lien alias (macOS uniquement)(par défaut) |
fk symbolic link | 1 | Lien symbolique (macOS uniquement) |
On Windows, a shortcut (.lnk file) is always created (the aliasType parameter is ignored).
Returned object
A 4D.File
object with the isAlias
property set to true.
Exemple
Vous souhaitez créer un alias pour un fichier contenu dans votre dossier principal :
$myFile:=Folder(fk documents folder).file("Archives/ReadMe.txt")
$aliasFile:=$myFile.createAlias(File("/PACKAGE");"ReadMe")
.creationDate
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.creationDate : Date
Description
The .creationDate
property returns the creation date of the file.
Cette propriété est en lecture seule.
.creationTime
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.creationTime : Time
Description
The .creationTime
property returns the creation time of the file (expressed as a number of seconds beginning at 00:00).
Cette propriété est en lecture seule.
.delete()
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.delete()
Paramètres | Type | Description | |
---|---|---|---|
Ne requiert aucun paramètre |
Description
The .delete()
function deletes the file.
Si le fichier n'existe pas sur le disque, la fonction ne fait rien (aucune erreur n'est générée).
Si le fichier est actuellement ouvert, le résultat dépend du système d'exploitation :
- sous Windows, une erreur est générée,
- sous macOS, aucune erreur n'est générée et le fichier est supprimé.
.delete()
can delete any file on a disk. Cela inclut les documents créés avec d'autres applications, ainsi que les applications elles-mêmes. .delete()
should be used with extreme caution. La suppression d'un fichier est une opération permanente et irréversible.
Exemple
Vous souhaitez supprimer un fichier spécifique dans le dossier de la base de données :
$tempo:=File("/PACKAGE/SpecialPrefs/"+Current user+".prefs")
If($tempo.exists)
$tempo.delete()
ALERT("User preference file deleted.")
End if
.exists
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.exists : Boolean
Description
The .exists
property returns true if the file exists on disk, and false otherwise.
Cette propriété est en lecture seule.
.extension
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.extension : Text
Description
The .extension
property returns the extension of the file name (if any). Une extension commence toujours par ".". La propriété renvoie une chaîne vide si le nom du fichier n'a pas d'extension.
Cette propriété est en lecture seule.
.fullName
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.fullName : Text
Description
The .fullName
property returns the full name of the file, including its extension (if any).
Cette propriété est en lecture seule.
.getAppInfo()
Historique
Release | Modifications |
---|---|
19 | Ajout |
.getAppInfo() : Object
Paramètres | Type | Description | |
---|---|---|---|
Résultat | Object | <- | Contenu du fichier de ressource version .exe/.dll ou .plist |
Description
The .getAppInfo()
function returns the contents of a .exe, .dll or .plist file information as an object.
La fonction doit être utilisée avec un fichier .exe, .dll ou .plist existant. Si le fichier n'existe pas sur le disque ou n'est pas un fichier .exe, .dll ou .plist valide, la fonction renvoie un objet vide (aucune erreur n'est générée).
Cette fonction ne prend en charge que les fichiers .plist au format xml (texte). Une erreur est retournée si elle est utilisée avec un fichier .plist au format binaire.
Objet retourné dans le cas d'un fichier .exe ou .dll
La lecture d'un fichier .exe ou .dll est possible uniquement sous Windows.
Toutes les valeurs de propriétés sont de type Texte.
Propriété | Type |
---|---|
InternalName | Text |
ProductName | Text |
CompanyName | Text |
LegalCopyright | Text |
ProductVersion | Text |
FileDescription | Text |
FileVersion | Text |
OriginalFilename | Text |
Objet retourné dans le cas d'un fichier .plist
Le contenu du fichier xml est analysé et les clés sont renvoyées en tant que propriétés de l'objet, en préservant leur type (texte, booléen, numérique). .plist dict
is returned as a JSON object and .plist array
is returned as a JSON array.
Exemple
// display copyright info of application .exe file (windows)
var $exeFile : 4D.File
var $info : Object
$exeFile:=File(Application file; fk platform path)
$info:=$exeFile.getAppInfo()
ALERT($info.LegalCopyright)
// display copyright info of an info.plist (any platform)
var $infoPlistFile : 4D.File
var $info : Object
$infoPlistFile:=File("/RESOURCES/info.plist")
$info:=$infoPlistFile.getAppInfo()
ALERT($info.Copyright)
Voir également
.getContent()
Historique
Release | Modifications |
---|---|
19 R2 | Retourne 4D.Blob |
17 R5 | Ajout |
.getContent( ) : 4D.Blob
Paramètres | Type | Description | |
---|---|---|---|
Résultat | 4D.Blob | <- | Contenu du fichier |
Description
The .getContent()
function returns a 4D.Blob
object containing the entire content of a file. For information on BLOBs, please refer to the BLOB section.
Valeur retournée
A 4D.Blob
object.
Exemple
To save a document's contents in a BLOB
field:
var $vPath : Text
$vPath:=Select document("";"*";"Select a document";0)
If(OK=1) //Si un document a été sélectionné
[aTable]aBlobField:=File($vPath;fk platform path).getContent()
End if
.getIcon()
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.getIcon( { size : Integer } ) : Picture
Paramètres | Type | Description | |
---|---|---|---|
size | Integer | -> | Longueur du côté de l'image retournée (pixels) |
Résultat | Picture | <- | Icône |
Description
The .getIcon()
function returns the icon of the file.
The optional size parameter specifies the dimensions in pixels of the returned icon. Cette valeur représente la longueur latérale du côté du carré contenant l'icône. La taille des icônes est généralement de 32x32 pixels (“grandes icônes”) ou de 16x16 pixels (“petites icônes”). Si vous passez 0 ou si vous omettez ce paramètre, la version "grandes icônes" est retournée.
Si le fichier n'existe pas sur disque, une icône par défaut vide est retournée.
Valeur retournée
File icon picture.
.getText()
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.getText( { charSetName : Text { ; breakMode : Integer } } ) : Text
.getText( { charSetNum : Integer { ; breakMode : Integer } } ) : Text
Paramètres | Type | Description | |
---|---|---|---|
charSetName | Text | -> | Nom du jeu de caractères |
charSetNum | Integer | -> | Numéro du jeu de caractères |
breakMode | Integer | -> | Mode de traitement des retours à la ligne |
Résultat | Text | <- | Texte du document |
Description
The .getText()
function returns the contents of the file as text .
Optionnellement, vous pouvez indiquer le jeu de caractères à utiliser pour la lecture du contenu. Vous pouvez passer soit :
- in charSetName, a string containing the standard set name (for example "ISO-8859-1" or "UTF-8"),
- or in charSetNum, the MIBEnum ID (number) of the standard set name.
For the list of character sets supported by 4D, refer to the description of the
CONVERT FROM TEXT
command.
If the document contains a Byte Order Mark (BOM), 4D uses the character set that it has set instead of the one specified in charSetName or charSetNum (this parameter is then ignored). If the document does not contain a BOM and if charSetName or charSetNum is omitted, by default 4D uses the "UTF-8" character set.
In breakMode, you can pass a number indicating the processing to apply to end-of-line characters in the document. Les constantes suivantes du thème "Documents système" sont disponibles :
Constante | Valeur | Commentaire |
---|---|---|
Document unchanged | 0 | Aucun traitement |
Document with native format | 1 | (Défaut) Les fins de ligne sont convertis au format natif de la plate-forme d’exécution : CR (carriage return) sous OS X, CRLF (carriage return + line feed) sous Windows |
Document with CRLF | 2 | Les fins de ligne sont convertis au format Windows : CRLF (carriage return + line feed) |
Document with CR | 3 | Les fins de ligne sont convertis au format OS X : CR (carriage return) |
Document with LF | 4 | Les fins de ligne sont convertis au format Unix : LF (line feed) |
By default, when you omit the breakMode parameter, line breaks are processed in native mode (1).
Valeur retournée
Texte du fichier.
Exemple
Considérons le document texte suivant (les champs sont séparés par des tabulations ) :
id name price vat
3 thé 1.06€ 19.6
2 café 1.05€ 19.6
Lorsque vous exécutez ce code :
$myFile:=Folder(fk documents folder).file("Billing.txt") //UTF-8 par défaut
$txt:=$myFile.getText()
... you get the following for $txt
:
"id\tname\tprice\tvat\r\n3\tthé\t1.06€\t19.6\r\n2\tcafé\t1.05€\t19.6"
with \t
(tab) as separator and \r\n
(CRLF) as line delimiter.
Voici un autre exemple avec le même fichier, mais un délimiteur de ligne différent :
$txt:=$myFile.getText("UTF-8"; Document with LF)
In this case, the contents of $txt
are as follows:
"id\tname\tprice\tvat\n3\tthé\t1.06€\t19.6\n2\tcafé\t1.05€\t19.6"
This time \n
(LF) is used as line delimiter.
.hidden
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.hidden : Boolean
Description
The .hidden
property returns true if the file is set as "hidden" at the system level, and false otherwise.
This property is read/write.
.isAlias
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.isAlias : Boolean
Description
The .isAlias
property returns true if the file is an alias, a shortcut, or a symbolic link, and false otherwise.
Cette propriété est en lecture seule.
.isFile
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.isFile : Boolean
Description
The .isFile
property returns always true for a file.
Cette propriété est en lecture seule.
.isFolder
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.isFolder : Boolean
Description
The .isFolder
property returns always false for a file.
Cette propriété est en lecture seule.
.isWritable
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.isWritable : Boolean
Description
The .isWritable
property returns true if the file exists on disk and is writable.
The property checks the ability of the 4D application to write on the disk (access rights), it does not solely rely on the writable attribute of the file.
Cette propriété est en lecture seule.
Example
$myFile:=File("C:\\Documents\\Archives\\ReadMe.txt";fk platform path)
If($myFile.isWritable)
$myNewFile:=$myFile.setText("Added text")
End if
.modificationDate
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.modificationDate : Date
Description
The .modificationDate
property returns the date of the file's last modification.
Cette propriété est en lecture seule.
.modificationTime
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.modificationTime : Time
Description
The .modificationTime
property returns the time of the file's last modification (expressed as a number of seconds beginning at 00:00).
Cette propriété est en lecture seule.
.moveTo()
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.moveTo( destinationFolder : 4D.Folder { ; newName : Text } ) : 4D.File
Paramètres | Type | Description | |
---|---|---|---|
dossierDestination | 4D.Folder | -> | Dossier de destination |
nouveauNom | Text | -> | Nom complet du fichier déplacé |
Résultat | 4D.File | <- | Fichier déplacé |
Description
The .moveTo()
function moves or renames the File
object into the specified destinationFolder.
The destinationFolder must exist on disk, otherwise an error is generated.
Par défaut, le fichier garde le même nom lorsqu'il est déplacé. If you want to rename the moved file, pass the new full name in the newName parameter. Le nouveau nom doit être conforme aux règles de nommage (ex : il ne doit pas contenir de caractères tels que ":", "/", etc.), sinon une erreur est retournée.
Returned object
The moved File
object.
Exemple
$DocFolder:=Folder(fk documents folder)
$myFile:=$DocFolder.file("Current/Infos.txt")
$myFile.moveTo($DocFolder.folder("Archives");"Infos_old.txt")
.name
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.name : Text
Description
The .name
property returns the name of the file without extension (if any).
Cette propriété est en lecture seule.
.open()
Historique
Release | Modifications |
---|---|
19 R7 | Ajout |
.open( { mode : Text } ) : 4D.FileHandle
.open( { options : Object } ) : 4D.FileHandle
Paramètres | Type | Description | |
---|---|---|---|
mode | Text | -> | Mode d'ouverture : "read", "write", "append" |
options | Object | -> | Options d'ouverture |
Résultat | 4D.FileHandle | <- | Nouvel objet File handle |
Description
The .open()
function creates and returns a new 4D.FileHandle object on the file, in the specified mode or with the specified options. You can use functions and properties of the 4D.FileHandle class to write, read, or append contents to the file.
If you use the mode (text) parameter, pass the opening mode for the file handle:
mode | Description |
---|---|
"read" | (Par défaut) Crée un file handle pour lire les valeurs dans le fichier. Si le fichier n'existe pas sur disque, une erreur est renvoyée. Vous pouvez ouvrir autant de file handles que vous voulez en mode "read" sur le même objet File. |
"write" | Crée un file handle pour écrire des valeurs dans le fichier (en commençant par le début du contenu du fichier). Si le fichier n'existe pas sur le disque, il est créé. Vous ne pouvez ouvrir qu'un seul file handle en mode "write" sur le même objet File. |
"append" | Crée un file handle pour écrire des valeurs dans le fichier (en commençant par la fin du fichier). Si le fichier n'existe pas sur le disque, il est créé. Vous ne pouvez ouvrir qu'un seul file handle en mode "append" sur le même objet File. |
The mode value is case sensitive.
If you use the options (object) parameter, you can pass more options for the file handle through the following properties (these properties can be read afterwards from the opened file handle object):
options | Type | Description | Par défaut |
---|---|---|---|
.mode | Text | Opening mode (see mode above) | "read" |
.charset | Text | Jeu de caractères utilisé lors de la lecture ou de l'écriture dans le fichier. Utilisez le nom standard du jeu (par exemple "ISO-8859-1" ou "UTF-8") | "UTF-8" |
.breakModeRead | Text ou numérique | Mode de traitement des sauts de ligne utilisés lors de la lecture du fichier (voir ci-dessous) | "native" ou 1 |
.breakModeWrite | Text ou numérique | Mode de traitement des sauts de ligne utilisés lors de l'écriture dans le fichier (voir ci-dessous) | "native" ou 1 |
La fonction remplace tous les délimiteurs de fin de ligne d'origine. Par défaut, le délimiteur natif est utilisé, mais vous pouvez définir un autre délimiteur. The .breakModeRead
and .breakModeWrite
indicate the processing to apply to end-of-line characters in the document. Vous pouvez utiliser l'une des valeurs suivantes (texte ou numérique) :
Mode de rupture en texte | Break mode en numérique (constante) | Description |
---|---|---|
"native" | 1 (Document with native format ) | (Défaut) Les fins de ligne sont convertis au format natif de la plate-forme d’exécution : LF (line feed) sous macOS, CRLF (carriage return + line feed) sous Windows |
"crlf" | 2 (Document with CRLF ) | Les fins de ligne sont converties en CRLF (retour chariot + saut de ligne), le format par défaut de Windows |
"cr" | 3 (Document with CR ) | Les fins de ligne sont converties en CR (retour chariot), le format MacOS classique par défaut |
"lf" | 4 (Document with LF ) | Les fins de ligne sont converties en LF (line feed), le format Unix et macOS par défaut |
The break mode as text value is case sensitive.
Exemple
Vous voulez créer un file handle pour lire le fichier "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
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.original : 4D.File
.original : 4D.Folder
Description
The .original
property returns the target element for an alias, a shortcut, or a symbolic link file. L'élément cible peut être :
- un objet File
- un objet Folder
Pour les fichiers sans alias, la propriété retourne le même objet File que le fichier.
Cette propriété est en lecture seule.
.parent
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.parent : 4D.Folder
Description
The .parent
property returns the parent folder object of the file. Si le chemin représente un filesystem (ex : "/DATA/"), le filesystem est retourné.
Cette propriété est en lecture seule.
.path
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.path : Text
Description
The .path
property returns the POSIX path of the file. Si le chemin représente un filesystem (ex : "/DATA/"), le filesystem est retourné.
Cette propriété est en lecture seule.
.platformPath
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.platformPath : Text
Description
The .platformPath
property returns the path of the file expressed with the current platform syntax.
Cette propriété est en lecture seule.
.rename()
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.rename( newName : Text ) : 4D.File
Paramètres | Type | Description | |
---|---|---|---|
nouveauNom | Text | -> | Nouveau nom complet du fichier |
Résultat | 4D.File | <- | Fichier renommé |
Description
The .rename()
function renames the file with the name you passed in newName and returns the renamed File
object.
The newName parameter must comply with naming rules (e.g., it must not contain characters such as ":", "/", etc.), otherwise an error is returned. S'il existe déjà un fichier portant le même nom, une erreur est retournée.
Note that the function modifies the full name of the file, i.e. if you do not pass an extension in newName, the file will have a name without an extension.
Returned object
The renamed File
object.
Exemple
Vous souhaitez que "ReadMe.txt" soit renommé "ReadMe_new.txt" :
$toRename:=File("C:\\Documents\\Archives\\ReadMe.txt";fk platform path)
$newName:=$toRename.rename($toRename.name+"_new"+$toRename.extension)
.setAppInfo()
Historique
Release | Modifications |
---|---|
20 | Prise en charge de WinIcon |
19 | Ajout |
.setAppInfo( info : Object )
Paramètres | Type | Description | |
---|---|---|---|
info | Object | -> | Propriétés à écrire dans le fichier .plist ou la ressource version du fichier .exe/.dll |
Description
The .setAppInfo()
function writes the info properties as information contents of a .exe, .dll or .plist file.
La fonction doit être utilisée avec un fichier .exe, .dll ou .plist existant. Si le fichier n'existe pas sur le disque ou n'est pas un fichier .exe, .dll ou .plist valide, la fonction ne fait rien (aucune erreur n'est générée).
Cette fonction ne prend en charge que les fichiers .plist au format xml (texte). Une erreur est retournée si elle est utilisée avec un fichier .plist au format binaire.
info parameter object with a .exe or .dll file
Ecrire les informations de fichiers .exe ou .dll est possible uniquement sous Windows.
Each valid property set in the info object parameter is written in the version resource of the .exe or .dll file. Les propriétés disponibles sont (toute autre propriété sera ignorée) :
Propriété | Type | Commentaire |
---|---|---|
InternalName | Text | |
ProductName | Text | |
CompanyName | Text | |
LegalCopyright | Text | |
ProductVersion | Text | |
FileDescription | Text | |
FileVersion | Text | |
OriginalFilename | Text | |
WinIcon | Text | Chemin Posix du fichier .ico. Cette propriété ne s'applique qu'aux fichiers exécutables générés par 4D. |
For all properties except WinIcon
, if you pass a null or empty text as value, an empty string is written in the property. Si vous passez une valeur de type autre que Texte, elle est "stringifiée".
For the WinIcon
property, if the icon file does not exist or has an incorrect format, an error is generated.
info parameter object with a .plist file
Each valid property set in the info object parameter is written in the .plist file as a key. Tous les noms de clés sont acceptés. Les types des valeurs sont préservés si possible.
If a key set in the info parameter is already defined in the .plist file, its value is updated while keeping its original type. Les autres clés définies dans le fichier .plist ne sont pas modifiées.
Pour définir une valeur de type Date, le format à utiliser est chaîne de timestamp json formatée en ISO UTC sans les millisecondes ("2003-02-01T01:02:03Z") comme dans l'éditeur de plist Xcode.
Exemple
// définir le copyright, la version et l'icône d'un fichier .exe (Windows)
var $exeFile; $iconFile : 4D.File
var $info : Object
$exeFile:=File(Application file ; fk platform path)
$iconFile:=File("/RESOURCES/myApp.ico")
$info:=Nouvel objet
$info.LegalCopyright:="Copyright 4D 2023"
$info.ProductVersion:="1.0.0"
$info.WinIcon:=$iconFile.path
$exeFile.setAppInfo($info)
// définir certaines clés dans un fichier info.plist (toutes plateformes)
var $infoPlistFile : 4D.File
var $info : Object
$infoPlistFile:=File("/RESOURCES/info.plist")
$info:=Nouvel objet
$info.Copyright:="Copyright 4D 2023" //text
$info.ProductVersion:=12 //integer .ShipmentDate:="2023-04-22T06:00:00Z" //timestamp .ProductVersion:=12 //integer
$info.ShipmentDate:="2023-04-22T06:00:00Z" //timestamp
$info.CFBundleIconFile:="myApp.icns" //pour macOS
$infoPlistFile.setAppInfo($info)
Voir également
.setContent()
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.setContent ( content : Blob )
Paramètres | Type | Description | |
---|---|---|---|
content | BLOB | -> | Nouveau contenu du fichier |
Description
The .setContent( )
function rewrites the entire content of the file using the data stored in the content BLOB. For information on BLOBs, please refer to the BLOB section.
Exemple
$myFile:=Folder(fk documents folder).file("Archives/data.txt")
$myFile.setContent([aTable]aBlobField)
.setText()
Historique
Release | Modifications |
---|---|
19 R3 | Par défaut pour les nouveaux projets : pas de BOM et (macOS) LF comme saut de ligne |
17 R5 | Ajout |
.setText ( text : Text {; charSetName : Text { ; breakMode : Integer } } )
.setText ( text : Text {; charSetNum : Integer { ; breakMode : Integer } } )
Paramètres | Type | Description | |
---|---|---|---|
text | Text | -> | Texte à stocker dans le fichier |
charSetName | Text | -> | Nom du jeu de caractères |
charSetNum | Integer | -> | Numéro du jeu de caractères |
breakMode | Integer | -> | Mode de traitement des retours à la ligne |
Description
The .setText()
function writes text as the new contents of the file.
If the file referenced in the File
object does not exist on the disk, it is created by the function. Lorsque le fichier existe déjà sur disque, son contenu antérieur est supprimé, sauf s'il est déjà ouvert, auquel cas son contenu est verrouillé et une erreur est générée.
In text, pass the text to write to the file. Cela peut être un texte littéral ("my text"), ou un champ / variable texte 4D.
Optionnellement, vous pouvez indiquer le jeu de caractères à utiliser pour l'écriture du contenu. Vous pouvez passer soit :
- in charSetName, a string containing the standard set name (for example "ISO-8859-1" or "UTF-8"),
- or in charSetNum, the MIBEnum ID (number) of the standard set name.
For the list of character sets supported by 4D, refer to the description of the
CONVERT FROM TEXT
command.
Si une marque d'ordre d'octet (BOM) existe pour le jeu de caractères, 4D l'insère dans le fichier, sauf si le jeu de caractères utilisé contient le suffixe "-no-bom" (par exemple "UTF-8-no-bom"). Si vous n'indiquez pas un jeu de caractères, 4D utilise par défaut le jeu de caractères "UTF-8" sans BOM.
In breakMode, you can pass a number indicating the processing to apply to end-of-line characters before saving them in the file. The following constants, found in the System Documents theme, are available:
Constante | Valeur | Commentaire |
---|---|---|
Document unchanged | 0 | Aucun traitement |
Document with native format | 1 | (Défaut) Les fins de ligne sont convertis au format natif de la plate-forme d’exécution : LF (line feed) sous macOS, CRLF (carriage return + line feed) sous Windows |
Document with CRLF | 2 | Les fins de ligne sont converties en CRLF (retour chariot + saut de ligne), le format par défaut de Windows |
Document with CR | 3 | Les fins de ligne sont converties en CR (retour chariot), le format MacOS classique par défaut |
Document with LF | 4 | Les fins de ligne sont converties en LF (line feed), le format Unix et macOS par défaut |
By default, when you omit the breakMode parameter, line breaks are processed in native mode (1).
Compatibility Note: Compatibility options are available for EOL and BOM management. See Compatibility page on doc.4d.com.
Exemple
$myFile:=File("C:\\Documents\\Hello.txt";fk platform path)
$myFile.setText("Hello world")
.size
Historique
Release | Modifications |
---|---|
17 R5 | Ajout |
.size : Real
Description
The .size
property returns the size of the file expressed in bytes. Si le fichier n'existe pas sur le disque, la taille est de 0.
Cette propriété est en lecture seule.