Aller au contenu principal
Version: 20 R5 BETA

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
ReleaseModifications
19 R4New HTTP Client log file constant
17 R5Ajout

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

ParamètresTypeDescription
pathText->Chemin de fichier
fileConstantInteger->Constante de fichier 4D
pathTypeInteger->fk posix path (default) or fk platform path
-->* pour retourner le fichier de la base hôte
Résultat4D.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 :

ConstanteValeurCommentaire
fk platform path1Chemin exprimé dans une syntaxe spécifique à la plate-forme (obligatoire en cas de chemin de plate-forme)
fk posix path0Chemin 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:

ConstanteValeurCommentaire
Backup history file19Fichier d'historique des sauvegardes (voir Fichiers de configuration et de suivi). Stocké dans le dossier de destination de sauvegarde.
Backup log file13Fichier journal des sauvegardes courant. Stocké dans le dossier Logs de l'application.
Backup settings file1Fichier backup.4DSettings par défaut (format xml), stocké dans le dossier Settings du projet
Backup settings file for data17fichier backup.4DSettings du fichier de données (format xml), stocké dans le dossier Settings du dossier data
Build application log file14Fichier d'historique courant au format xml du générateur d'application. Stocké dans le dossier Logs.
Build application settings file20Fichier de configuration par défaut du générateur d'application ("buildApp.4DSettings"). Stocké dans le dossier Settings du projet.
Compacting log file6Fichier 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 file18fichier 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 file12Log file created by the SET DATABASE PARAMETER(Debug log recording) command. Stocké dans le dossier Logs.
Diagnostic log file11Log file created by the SET DATABASE PARAMETER(Diagnostic log recording) command. Stocké dans le dossier Logs.
Directory file16fichier 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 file24Log file created by the HTTP SET OPTION(HTTP client log) command. Stocké dans le dossier Logs.
HTTP debug log file9Log file created by the WEB SET OPTION(Web debug log) command. Stocké dans le dossier Logs.
HTTP log file8Log file created by the WEB SET OPTION(Web log recording) command. Stocké dans le dossier Logs.
IMAP Log file23Log file created by the SET DATABASE PARAMETER(IMAP Log) command. Stocké dans le dossier Logs.
Last backup file2Last backup file, named \<applicationName>[bkpNum].4BK, stored at a custom location.
Last journal integration log file22Chemin 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 file7Fichier 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 file10Standard 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 file15Log file created by the SET DATABASE PARAMETER(SMTP Log) command. Stocké dans le dossier Logs.
User settings file3Fichier 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 data4Fichier settings.4DSettings file pour le fichier de données courant, stocké dans le dossier Preferences à côté du fichier de données.
Verification log file5Log 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
ReleaseModifications
18 R6Ajout

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 of 4D.File.new().

.copyTo()

Historique
ReleaseModifications
17 R5Ajout

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

ParamètresTypeDescription
dossierDestination4D.Folder->Dossier de destination
nouveauNomText->Nom de la copie
overwriteInteger->fk overwrite to replace existing elements
Résultat4D.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

ConstanteValeurCommentaire
fk overwrite4É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
ReleaseModifications
17 R5Ajout

Not available for ZIP archives

.create() : Boolean

ParamètresTypeDescription
RésultatBoolean<-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
ReleaseModifications
17 R5Ajout

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

ParamètresTypeDescription
dossierDestination4D.Folder->Dossier de destination pour l'alias ou le raccourci
aliasNameText->Nom de l'alias ou du raccourci
aliasTypeInteger->Type de lien de l'alias
Résultat4D.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 :

ConstanteValeurCommentaire
fk alias link0Lien alias (macOS uniquement)(par défaut)
fk symbolic link1Lien 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
ReleaseModifications
17 R5Ajout

.creationDate : Date

Description

The .creationDate property returns the creation date of the file.

Cette propriété est en lecture seule.

.creationTime

Historique
ReleaseModifications
17 R5Ajout

.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
ReleaseModifications
17 R5Ajout

.delete()

ParamètresTypeDescription
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é.
caution

.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
ReleaseModifications
17 R5Ajout

.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
ReleaseModifications
17 R5Ajout

.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
ReleaseModifications
17 R5Ajout

.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
ReleaseModifications
19Ajout

.getAppInfo() : Object

ParamètresTypeDescription
RésultatObject<-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
InternalNameText
ProductNameText
CompanyNameText
LegalCopyrightText
ProductVersionText
FileDescriptionText
FileVersionText
OriginalFilenameText

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

.setAppInfo()

.getContent()

Historique
ReleaseModifications
19 R2Retourne 4D.Blob
17 R5Ajout

.getContent( ) : 4D.Blob

ParamètresTypeDescription
Résultat4D.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
ReleaseModifications
17 R5Ajout

.getIcon( { size : Integer } ) : Picture

ParamètresTypeDescription
sizeInteger->Longueur du côté de l'image retournée (pixels)
RésultatPicture<-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
ReleaseModifications
17 R5Ajout

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

ParamètresTypeDescription
charSetNameText->Nom du jeu de caractères
charSetNumInteger->Numéro du jeu de caractères
breakModeInteger->Mode de traitement des retours à la ligne
RésultatText<-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 :

ConstanteValeurCommentaire
Document unchanged0Aucun traitement
Document with native format1(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 CRLF2Les fins de ligne sont convertis au format Windows : CRLF (carriage return + line feed)
Document with CR3Les fins de ligne sont convertis au format OS X : CR (carriage return)
Document with LF4Les 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
ReleaseModifications
17 R5Ajout

.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
ReleaseModifications
17 R5Ajout

.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
ReleaseModifications
17 R5Ajout

.isFile : Boolean

Description

The .isFile property returns always true for a file.

Cette propriété est en lecture seule.

.isFolder

Historique
ReleaseModifications
17 R5Ajout

.isFolder : Boolean

Description

The .isFolder property returns always false for a file.

Cette propriété est en lecture seule.

.isWritable

Historique
ReleaseModifications
17 R5Ajout

.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
ReleaseModifications
17 R5Ajout

.modificationDate : Date

Description

The .modificationDate property returns the date of the file's last modification.

Cette propriété est en lecture seule.

.modificationTime

Historique
ReleaseModifications
17 R5Ajout

.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
ReleaseModifications
17 R5Ajout

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

ParamètresTypeDescription
dossierDestination4D.Folder->Dossier de destination
nouveauNomText->Nom complet du fichier déplacé
Résultat4D.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
ReleaseModifications
17 R5Ajout

.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
ReleaseModifications
19 R7Ajout

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

ParamètresTypeDescription
modeText->Mode d'ouverture : "read", "write", "append"
optionsObject->Options d'ouverture
Résultat4D.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:

modeDescription
"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):

optionsTypeDescriptionPar défaut
.modeTextOpening mode (see mode above)"read"
.charsetTextJeu 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"
.breakModeReadText ou numériqueMode de traitement des sauts de ligne utilisés lors de la lecture du fichier (voir ci-dessous)"native" ou 1
.breakModeWriteText ou numériqueMode 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 texteBreak 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
ReleaseModifications
17 R5Ajout

.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
ReleaseModifications
17 R5Ajout

.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
ReleaseModifications
17 R5Ajout

.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
ReleaseModifications
17 R5Ajout

.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
ReleaseModifications
17 R5Ajout

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

ParamètresTypeDescription
nouveauNomText->Nouveau nom complet du fichier
Résultat4D.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
ReleaseModifications
20Prise en charge de WinIcon
19Ajout

.setAppInfo( info : Object )

ParamètresTypeDescription
infoObject->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éTypeCommentaire
InternalNameText
ProductNameText
CompanyNameText
LegalCopyrightText
ProductVersionText
FileDescriptionText
FileVersionText
OriginalFilenameText
WinIconTextChemin 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

.getAppInfo()

.setContent()

Historique
ReleaseModifications
17 R5Ajout

.setContent ( content : Blob )

ParamètresTypeDescription
contentBLOB->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
ReleaseModifications
19 R3Par défaut pour les nouveaux projets : pas de BOM et (macOS) LF comme saut de ligne
17 R5Ajout

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

ParamètresTypeDescription
textText->Texte à stocker dans le fichier
charSetNameText->Nom du jeu de caractères
charSetNumInteger->Numéro du jeu de caractères
breakModeInteger->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:

ConstanteValeurCommentaire
Document unchanged0Aucun traitement
Document with native format1(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 CRLF2Les fins de ligne sont converties en CRLF (retour chariot + saut de ligne), le format par défaut de Windows
Document with CR3Les fins de ligne sont converties en CR (retour chariot), le format MacOS classique par défaut
Document with LF4Les 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
ReleaseModifications
17 R5Ajout

.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.