File
Os objectos do ficheiro
são criados com o comando Arquivo
. Contêm referências a ficheiros de disco que podem ou não existir efectivamente no disco. Por exemplo, quando executa o comando File
para criar um novo ficheiro, é criado um objecto válido File
mas nada é realmente armazenado no disco até chamar a função file.create( )
.
Exemplo
O exemplo seguinte cria um arquivo de preferências na pasta do projecto:
var $created : Boolean
$created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create()
Pathnames
Os objectos
suportam vários pathnames, incluindo filesystems
ou posix
syntax. Os pathnames suportados são detalhados na página Pathnames .
Objeto File
.copyTo( destinationFolder : 4D. Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D. File A propriedade .isFolder devolve |
.create() : Boolean cria um arquivo em disco de acordo com as propriedades do objecto File |
.createAlias( destinationFolder : 4D. Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D. File cria um pseudónimo (macOS) ou um atalho (Windows) |
.creationDate : Date A propriedade .modificationDate devolve |
.creationTime : Time a hora da criação do arquivo |
.delete() apaga o arquivo |
.exists : Boolean true se o ficheiro existir em disco |
.extension : Text a extensão do nome do ficheiro (se existir) |
.fullName : Text o nome completo do ficheiro, incluindo a sua extensão (se houver) |
.getAppInfo() : Object retorna os conteúdos de um arquivo de informação .exe, .dll ou .plist como um objeto |
.getContent( ) : Blobreturns a 4D. Blob object containing the entire content of a file |
.getIcon( { size : Integer } ) : Picture o ícone do ficheiro |
.getText( { charSetName : Text { ; breakMode : Integer } } ) : Text .getText( { charSetNum : Integer { ; breakMode : Integer } } ) : Text devolve o conteúdo do ficheiro como texto |
.hidden : Boolean true se o arquivo for definido como "escondido" ao nível do sistema |
.isAlias : Boolean verdadeiro se o arquivo for um alias (apelido), um atalho, ou um link simbólico |
.isFile : Boolean A função .copyTo() |
.isFolder : Boolean A propriedade .platformPath devolve |
.isWritable : Boolean verdadeiro se o arquivo existir em disco e for gravável |
.modificationDate : Date A propriedade .aceita a transação devolve |
.modificationTime : Time A propriedade .modificationTime devolve |
.moveTo( destinationFolder : 4D. Folder { ; newName : Text } ) : 4D. File move ou renomeia o objeto File na destinationFolder especificada |
.name : Text A propriedade .isFile devolve |
.open( { mode : Text } ) : 4D.FileHandle .open( { options : Object } ) : 4D.FileHandle cria e devolve um novo objeto 4D. FileHandle no arquivo, no mode ou como as options especificadas |
[ |
.parent : 4D. Folder A propriedade .parent devolve |
.path : Text A propriedade .path devolve |
.platformPath : Text o caminho do ficheiro expresso com a sintaxe da plataforma actual |
.rename( newName : Text ) : 4D.File renomeia o ficheiro com o nome que passou em newName e devolve o objecto renomeado File |
.setAppInfo( info : Object ) escreve as propriedades de info como conteúdo informativo de um arquivo .exe, .dll ou .plist |
.setContent ( content : Blob ) reescreve todo o conteúdo do ficheiro utilizando os dados armazenados no BLOB content |
.setText ( text : Text {; charSetName : Text { ; breakMode : Integer } } ) .setText ( text : Text {; charSetNum : Integer { ; breakMode : Integer } } ) escreve text como o novo conteúdo do ficheiro |
.size : Real o tamanho do arquivo expresso em bytes |
File
Histórico
Release | Mudanças |
---|---|
19 R4 | Nova constante HTTP Client log file |
17 R5 | Adicionado |
File ( path : Text { ; pathType : Integer }{ ; * } ) : 4D.File
File ( fileConstant : Integer { ; * } ) : 4D.File
Parâmetro | Tipo | Descrição | |
---|---|---|---|
path | Text | -> | Rota do arquivo |
fileConstant | Integer | -> | Constante de arquivo 4D |
pathType | Integer | -> | fk posix path (por defeito) ou fk platform path |
* | -> | * para devolver o arquivo da base de dados anfitriã | |
Resultados | 4D. File | <- | Novo objeto arquivo |
|
Descrição
O comando File
cria e devolve um novo objecto do tipo 4D.File
. O comando aceita duas sintaxes:
File ( path { ; pathType } { ; * })
No parâmetro path , passe um file path string. You can use a custom string or a filesystem (e.g., "/DATA/myfile.txt").
Apenas são compatíveis os nomes de caminho absolutos com o comando
File
.
Como padrão, 4D espera um caminho expresso com a sintaxe POSIX. Se trabalhar com pathnames de plataforma (Windows ou macOS), deve declará-lo usando o parâmetro pathType . Estão disponíveis as seguintes constantes:
Parâmetros | Valor | Comentário |
---|---|---|
fk platform path | 1 | Caminho expresso com uma sintaxe específica da plataforma (obrigatória em caso de caminho de plataforma) |
fk posix path | 0 | Caminho expresso com a sintaxe POSIX (por padrão) |
File ( fileConstant { ; * } )
No parâmetro fileConstant , passe um ficheiro 4D incorporado ou de sistema, utilizando uma das constantes seguintes:
Parâmetros | Valor | Comentário |
---|---|---|
Backup history file | 19 | Arquivo de histórico de cópias de segurança (ver Arquivos de configuração e rastreio). Armazenado na pasta de destino de cópia de segurança. |
Backup log file | 13 | Arquivo atual do diário de backup. Armazenado na pasta Logs da aplicação. |
Backup settings file | 1 | Arquivo padrão backup.4DSettings (formato xml), armazenado na pasta Settings do projecto |
Backup settings file for data | 17 | backup.4DSettings file (formato xml) para o arquivo de dados, armazenado na pasta Settings da pasta de dados |
Build application log file | 14 | Arquivo de registo atual em formato xml do construtor da aplicação. Armazenado na pasta Logs. |
Build application settings file | 20 | Arquivo de configurações padrão do construtor da aplicação ("buildApp.4DSettings"). Armazenado na pasta Settings do projecto. |
Compacting log file | 6 | Arquivo de registo da mais recente compactação feita com o comando Compact data file ou o centro de Manutenção e segurança. Armazenado na pasta Logs. |
Current backup settings file | 18 | arquivo backup.4DSettings utilizado actualmente pela aplicação. Pode ser o arquivo de definições de backup (predefinido) ou um arquivo personalizado de definições de backup do usuário definido para o arquivo de dados |
Debug log file | 12 | Arquivo de registo criado pelo comando SET DATABASE PARAMETER(Debug log recording) . Armazenado na pasta Logs. |
Diagnostic log file | 11 | Arquivo de registo criado pelo comando SET DATABASE PARAMETER(Diagnostic log recording) . Armazenado na pasta Logs. |
Directory file | 16 | directório.json, contendo a descrição dos usuários e grupos (se houver) para a aplicação do projecto. Pode ser localizado ou na pasta de configurações do usuário (por padrão, global ao projecto), ou na pasta de definições de dados (específica a um arquivo de dados). |
HTTP Client log file | 24 | Arquivo de histórico criado pelo comando HTTP SET OPTION (HTTP client log) . Armazenado na pasta Logs. |
HTTP debug log file | 9 | Arquivo de registo criado pelo comando WEB SET OPTION(Web debug log) . Armazenado na pasta Logs. |
HTTP log file | 8 | Arquivo de registo criado pelo comando WEB SET OPTION(Web log recording) . Armazenado na pasta Logs. |
IMAP Log file | 23 | Arquivo de registo criado pelo comando SET DATABASE PARAMETER(IMAP Log) . Armazenado na pasta Logs. |
Last backup file | 2 | Último arrquivo de cópia de segurança, denominado \<applicationName>[bkpNum].4BK , armazenado num local personalizado. |
Last journal integration log file | 22 | Nome completo do último arquivo de registo de integração do diário (armazenado na pasta Logs da aplicação restaurada), se existir. Este arquivo é criado, em modo de auto-reparação, assim que ocorrer a integração de um arquivo de registo |
Repair log file | 7 | Arquivo de registo das reparações da base de dados efetuadas na base de dados no Centro de Manutenção e Segurança (MSC). Armazenado na pasta Logs. |
Request log file | 10 | Arquivo padrão de registo de pedido de cliente/servidor (excluindo pedidos Web) criado pelos comandos SET DATABASE PARAMETER(4D Server log recording) ou SET DATABASE PARAMETER(Client log recording) . Se executado no servidor, o ficheiro de registo do servidor é devolvido (armazenado na pasta Logs do servidor). Se executado no cliente, o arquivo de registo do cliente é devolvido (armazenado na pasta local Logs do cliente). |
SMTP log file | 15 | Arquivo de registo criado pelo comando SET DATABASE PARAMETER(SMTP Log) . Armazenado na pasta Logs. |
User settings file | 3 | settings.4DSettings arquivo para todos os arquivos de dados, guardados na pasta Preferências ao lado do arquivo de estrutura, se ativado. |
User settings file for data | 4 | arquivo settings.4DSettings para dados atual, guardado na pasta Preferências ao lado do arquivo de dados. |
Verification log file | 5 | Arquivo Log criado pelos comandos VERIFY CURRENT DATA FILE e VERIFY DATA FILE ou pelo Maintenance and Security Center (MSC). Armazenado na pasta Logs. |
Se o alvo fileConstant não existir, um objecto nulo é devolvido. Não se levantam erros.
Se o comando for chamado a partir de um componente, passe o parâmetro opcional *
para obter o caminho da base de dados anfitriã. Caso contrário, se omitir o parâmetro *
, um objecto nulo é sempre devolvido.
4D. File.new()
Histórico
Release | Mudanças |
---|---|
18 R6 | Adicionado |
4D.File.new ( path : Text { ; pathType : Integer } ) : 4D.File
4D.File.new ( fileConstant : Integer ) : 4D.File
Descrição
A função 4D. File.new()
cria e devolve um novo objecto do tipo 4D.File
. É idêntico ao comando File
(atalho).
It is recommended to use the
File
shortcut command instead of4D. File.new()
.
.copyTo()
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.copyTo( destinationFolder : 4D. Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D. File
Parâmetro | Tipo | Descrição | |
---|---|---|---|
destinationFolder | 4D. Folder | -> | Pasta de destino |
newName | Text | -> | Nome para a copia |
overwrite | Integer | -> | fk overwrite para substituir os elementos existentes |
Resultados | 4D. File | <- | Arquivo copiado |
|
Descrição
A função .copyTo()
A propriedade .isFolder
devolve .
A destinationFolder deve existir em disco, senão um erro é gerado.
Como padrão, o arquivo é copiado com o nome do arquivo original. Se quiser renomear a cópia, passe o novo nome no parâmetro newName . O novo nome deve cumprir com as regras de nomenclatura (por exemplo, não deve conter caracteres como ":", "/", etc.), do contrário se devolve um erro.
Se já existir um arquivo com o mesmo nome em destinationFolder, por padrão 4D gera um erro. Pode passar a constante fk overwrite
no parâmetro overwrite para ignorar e sobrescriber o arquivo existente
Parâmetros | Valor | Comentário |
---|---|---|
fk overwrite | 4 | Sobrescrever os elementos existentes, se houver |
Valor retornado
O objeto File
copiado.
Exemplo
Se quiser copiar um arquivo Imagem da pasta de documentos do usuário a pasta da aplicação:
var $source; $copy : Object
$source:=Folder(fk documents folder).file("Pictures/photo.png")
$copy:=$source.copyTo(Folder("/PACKAGE");fk overwrite)
.create()
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
Não disponível para arquivos ZIP
.create() : Boolean
Parâmetro | Tipo | Descrição | |
---|---|---|---|
Resultados | Parâmetros | <- | Verdadeiro se o arquivo foi criado com sucesso, falso caso contrário |
|
Descrição
A função .create()
cria um arquivo em disco de acordo com as propriedades do objecto File
.
Se necessário, a função cria a pasta hierachy como descrito na platformPath ou caminho propriedades. Se o arquivo já existir no disco, a função não faz nada (não é atirado nenhum erro) e retorna falso.
Valor retornado
- Verdadeiro se o arquivo for criado com sucesso;
- Falso se já existir um arquivo com o mesmo nome ou se tiver ocorrido um erro.
Exemplo
Criação de um arquivo de preferências na pasta da base de dados:
var $created : Boolean
$created:=File("/PACKAGE/SpecialPrefs/"+Current user+".myPrefs").create()
.createAlias()
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.createAlias( destinationFolder : 4D. Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D. File
Parâmetro | Tipo | Descrição | |
---|---|---|---|
destinationFolder | 4D. Folder | -> | Pasta de destino para o pseudónimo ou atalho |
aliasName | Text | -> | Nome do pseudónimo ou atalho |
aliasType | Integer | -> | Tipo de ligação do pseudónimo |
Resultados | 4D. File | <- | Referência a pseudónimo ou ficheiro de atalho |
|
Descrição
A função .createAlias()
cria um pseudónimo (macOS) ou um atalho (Windows) para o arquivo com o nome aliasName especificado na pasta designada pelo objecto destinationFolder .
Passar o nome do pseudónimo ou atalho para criar no parâmetro aliasName .
Por padrão em macOS, a função cria um pseudónimo padrão. Também pode criar uma ligação simbólica utilizando o parâmetro aliasType . Estão disponíveis as seguintes constantes:
Parâmetros | Valor | Comentário |
---|---|---|
fk alias link | 0 | Alias link (padrão) |
fk symbolic link | 1 | Link simbólico (só em macOS) |
No Windows, é sempre criado um atalho (arquivo .lnk) (o parâmetro aliasType é ignorado).
Objeto devolvido
A 4D. File
object with the isAlias
property set to true.
Exemplo
Se quiser criar um alias para um arquivo na sua pasta database:
$myFile:=Folder(fk documents folder).file("Archives/ReadMe.txt")
$aliasFile:=$myFile.createAlias(File("/PACKAGE");"ReadMe")
.creationDate
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.creationDate : Date
Descrição
A propriedade .aceita a transação
devolve A propriedade .modificationDate
devolve.
Essa propriedade é apenas leitura.
.creationTime
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.creationTime : Time
Descrição
A propriedade .creationTime
devolve a hora da criação do arquivo (expresso como um número de segundos a partir das 00:00).
Essa propriedade é apenas leitura.
.delete()
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.delete()
| Parâmetro | Tipo | | Descrição | | --------- | ---- | | ----------------------------------------------------- | | | | | Não exige nenhum parâmetro|
|
Descrição
A função .delete()
apaga o arquivo.
Se o arquivo não existir no disco, a função não faz nada (não é gerado nenhum erro).
Se o ficheiro estiver atualmente aberto, o resultado depende do sistema operativo:
- no Windows, é gerado um erro,
- no macOS, não é gerado qualquer erro e o ficheiro é eliminado.
.delete()
pode apagar qualquer ficheiro num disco. Isto inclui documentos criados com outras aplicações, bem como as próprias aplicações. .delete()
deve ser utilizado com extrema cautela. A eliminação de um arquivo é uma operação permanente e não pode ser desfeita.
Exemplo
Se quiser apagar um ficheiro específico na pasta da base de dados:
$tempo:=File("/PACKAGE/SpecialPrefs/"+Current user+".prefs")
If($tempo.exists)
$tempo.delete()
ALERT("User preference file deleted.")
End if
.exists
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.exists : Boolean
Descrição
A propriedade .exists
devolve true se o ficheiro existir em discoe false de outra forma.
Essa propriedade é apenas leitura.
.extension
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.extension : Text
Descrição
A propriedade .extension
devolve a extensão do nome do ficheiro (se existir). Uma extensão sempre começa com ".". Uma extensão sempre começa com "." A propriedade devolve uma string vazia se o nome do arquivo não tiver extensão.
Essa propriedade é apenas leitura.
.fullName
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.fullName : Text
Descrição
A propriedade .fullName
devolve o nome completo do ficheiro, incluindo a sua extensão (se houver).
Essa propriedade é apenas leitura.
.getAppInfo()
Histórico
Release | Mudanças |
---|---|
19 | Adicionado |
.getAppInfo() : Object
Parâmetro | Tipo | Descrição | |
---|---|---|---|
Resultados | Object | <- | Conteúdo do arquivo de versão recurso .exe/.dll ou .plist |
|
Descrição
A função .getAppInfo()
retorna os conteúdos de um arquivo de informação .exe, .dll ou .plist como um objeto.
A função deve ser utilizada com um arquivo .exe, .dll ou .plist existente. Se o arquivo não existir no disco ou não for um ficheiro .exe, .dll ou .plist válido, a função devolve um objecto vazio (não é gerado nenhum erro).
A função apenas é compatível com arquivos .plist em formato xml (baseado em texto). Um erro é retornado se usado com um arquivo .plist em formato binário.
Objeto devolvido com um arquivo .exe ou .dll
A leitura de um .exe ou .dll só é possível no Windows.
Todos os valores de propriedades são Texto.
Propriedade | Tipo |
---|---|
InternalName | Text |
ProductName | Text |
CompanyName | Text |
LegalCopyright | Text |
ProductVersion | Text |
FileDescription | Text |
FileVersion | Text |
OriginalFilename | Text |
Objeto devolvido com um arquivo .split
O conteúdo xml do arquivo é analisado e as chaves são devolvidas como propriedades do objeto, preservando os seus tipos (texto, booleano, número). .plist dict
é devolvido como um objeto JSON e .plist array
é devolvido como um array JSON.
Exemplo
// 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.
Veja também
.getContent()
Histórico
Release | Mudanças |
---|---|
19 R2 | Returns 4D. Blob |
17 R5 | Adicionado |
.getContent( ) : Blob
Parâmetro | Tipo | Descrição | |
---|---|---|---|
Resultados | 4D. Blob | <- | Conteúdo do arquivo |
|
Descrição
A função .getContent()
returns a 4D. Blob
object containing the entire content of a file. Para informações sobre BLOBs, consultar a secção BLOB .
Valor retornado
Um Blob
.
Exemplo
Para salvar o conteúdo de um documento em um campo BLOB
:
var $vPath : Text
$vPath:=Select document(""; "*"; "Select a document";0)
If(OK=1) //Se tiver sido escolhido um documento
[aTable]aBlobField:=File($vPath;fk platform path).getContent()
End if
.getIcon()
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.getIcon( { size : Integer } ) : Picture
Parâmetro | Tipo | Descrição | |
---|---|---|---|
size | Integer | -> | Longitude de lado da imagem devolvida (píxeles) |
Resultados | Imagem | <- | Ícone |
|
Descrição
A função .getIcon()
devolve o ícone do ficheiro.
O parâmetro opcional size especifica as dimensões em píxels do icone devolvido. Este valor representa em realidade a longitude do lado do quadrado que contém o icone. Icones são geralmente definidos como 32x32 píxels ('icones grandes') ou 16x16 ('icones pequenos'). Se passar 0 ou omitir este parâmetro, se devolve a versão 'icone grande'
Se o arquivo não existir no disco, um ícone em branco padrão será retornado.
Valor retornado
Ícone de arquivo imagem.
.getText()
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.getText( { charSetName : Text { ; breakMode : Integer } } ) : Text
.getText( { charSetNum : Integer { ; breakMode : Integer } } ) : Text
Parâmetro | Tipo | Descrição | |
---|---|---|---|
charSetName | Text | -> | Nome do conjunto de caracteres |
charSetNum | Integer | -> | Número de conjuntos de caracteres |
breakMode | Integer | -> | Modo de processamento para quebras de linha |
Resultados | Text | <- | Texto do documento |
|
Descrição
A função .getText()
devolve o conteúdo do ficheiro como texto .
Opcionalmente, você pode designar o conjunto de caracteres a ser usado na leitura do conteúdo. Você pode passar também:
- em charSetName, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"),
- ou em charSetNum, o MIBEnum ID (número) do nome de configuração padrão.
Para a lista de conjuntos de caracteres suportados por 4D, consulte a descrição do comando
CONVERT FROM TEXT
.
Se o documento contiver uma nota de ordem de byte (BOM), 4D usa o conjunto de caracteres que definiu em vez do especificado no charSetName ou charSetNum (este parâmetro é então ignorado). Se o documento não contiver uma LDM e se o charSetName ou charSetNum for omitido, por padrão 4D usa o conjunto de caracteres "UTF-8".
Em breakMode, você pode passar um número indicando o processamento a aplicar aos caracteres de fim de linha no documento. As seguintes constantes do tema "Documentos do Sistema" estão disponíveis:
Parâmetros | Valor | Comentário |
---|---|---|
Document unchanged | 0 | Não processado |
Document with native format | 1 | (Padrão) As quebras de linha são convertidas para o formato nativo do sistema operacional: CR (retorno de carro) sob OS X, CRLF (retorno do carro + salto de linha) em Windows |
Documento com CRLF | 2 | Quebras de linha são convertidas em formato Windows: CRLF (retorno de carro + quebra de linha) |
Documento com CR | 3 | Quebras de linha são convertidas para o formato OS X: CR (retorno de carro) |
Documento com LF | 4 | Quebras de linha são convertidas em formato Unix: LF (feed de linha) |
Por padrão, ao omitir o parâmetro breakMode , as quebras de linha são processadas no modo nativo (1).
Valor retornado
Texto do arquivo.
Exemplo
Dado o seguinte documento de texto (os campos são separados por tabulações):
id name price vat
3 thé 1.06€ 19.6
2 café 1.05€ 19.6
Quando você executar este código:
$myFile:=Folder(fk documents folder).file("Billing.txt") //UTF-8 por padrão
$txt:=$myFile.getText()
|
"id\tname\tprice\tvat\r\n3\tthé\t1.06€\t19.6\r\n2\tcafé\t1.05€\t19.6"
com \t
(tab) como separador e \r\n
(CRLF) como delimitador de linha.
Aqui está outro exemplo com o mesmo arquivo, mas um delimitador de linha diferente:
$txt:=$myFile.getText("UTF-8"; Document with LF)
Neste caso, o conteúdo de $txt
é o seguinte:
"id\tname\tprice\tvat\n3\tthé\t1.06€\t19.6\n2\tcafé\t1.05€\t19.6"
Este tempo \n
(LF) é usado como delimitador de linha.
.hidden
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.hidden : Boolean
Descrição
A propriedade .size
devolve true se o arquivo for definido como "escondido" ao nível do sistemae false de outra forma.
Esta propriedade é read/write.
.isAlias
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.isAlias : Boolean
Descrição
A propriedade .isAlias
devolve verdadeiro se o arquivo for um alias (apelido), um atalho, ou um link simbólicoe false de outra forma.
Essa propriedade é apenas leitura.
.isFile
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.isFile : Boolean
Descrição
A propriedade .isFile
devolve A função .copyTo()
.
Essa propriedade é apenas leitura.
.isFolder
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.isFolder : Boolean
Descrição
A propriedade .isFolder
devolve A propriedade .platformPath
devolve.
Essa propriedade é apenas leitura.
.isWritable
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.isWritable : Boolean
Descrição
A propriedade .isWritable
devolve verdadeiro se o arquivo existir em disco e for gravável.
A propriedade verifica a habilidade da aplicação 4D de escrever no disco (direitos de acesso), não depende apenas do atributo writable do arquivo.
Essa propriedade é apenas leitura.
Exemplo
$myFile:=File("C:\\Documents\\Archives\\ReadMe.txt";fk platform path)
If($myFile.isWritable)
$myNewFile:=$myFile.setText("Added text")
End if
.modificationDate
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.modificationDate : Date
Descrição
A propriedade .modificationDate
devolve A propriedade .aceita a transação
devolve.
Essa propriedade é apenas leitura.
.modificationTime
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.modificationTime : Time
Descrição
A propriedade .modificationTime
devolve A propriedade .modificationTime
devolve (expresso como um número de segundos a partir das 00:00).
Essa propriedade é apenas leitura.
.moveTo()
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.moveTo( destinationFolder : 4D. Folder { ; newName : Text } ) : 4D. File
Parâmetro | Tipo | Descrição | |
---|---|---|---|
destinationFolder | 4D. Folder | -> | Pasta de destino |
newName | Text | -> | Nome completo do ficheiro movido |
Resultados | 4D. File | <- | Arquivo movido |
|
Descrição
A função .moveTo()
move ou renomeia o objeto File
na destinationFolder especificada.
A destinationFolder deve existir em disco, senão um erro é gerado.
Por padrão, o arquivo mantém o seu nome quando é movido. Se quiser renomear o arquivo movido, passe o novo nome completo no parâmetro newName. O novo nome deve cumprir com as regras de nomenclatura (por exemplo, não deve conter caracteres como ":", "/", etc.), do contrário se devolve um erro.
Objeto devolvido
O objecto File
movido.
Exemplo
$DocFolder:=Folder(fk documents folder)
$myFile:=$DocFolder.file("Current/Infos.txt")
$myFile.moveTo($DocFolder.folder("Archives");"Infos_old.txt")
.name
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.name : Text
Descrição
A propriedade .name
devolve A propriedade .isFile
devolve.
Essa propriedade é apenas leitura.
.open()
Histórico
Release | Mudanças |
---|---|
18 R6 | Adicionado |
.open( { mode : Text } ) : 4D.FileHandle
.open( { options : Object } ) : 4D.FileHandle
Parâmetro | Tipo | Descrição | |
---|---|---|---|
mode | Text | -> | Modo de abertura: "read", "write", "append" |
options | Object | -> | Opções de abertura |
Resultados | 4D.FileHandle | <- | Novo objeto File handle |
|
Descrição
A função .open()
cria e devolve um novo objeto 4D. FileHandle no arquivo, no mode ou como as options especificadas. Pode utilizar funções e propriedades da classe 4D. FileHandle para escrever, ler ou anexar conteúdo ao arquivo.
Se utilizar o parâmetro mode (text), passe o modo de abertura para o file handle:
mode | Descrição |
---|---|
"read" | (Padrão) Cria um file handle para ler os valores do arquivo. Se o arquivo não existir em disco, um erro é retornado. Pode abrir quantos file handles quiser em modo "ler" no mesmo objeto File. |
"write" | Cria um file handle para escrever os valores no arquivo (começando no início do conteúdo do arquivo). Se o arquivo não existir em disco, é criado. Só se pode abrir um único file handle em modo "write" no mesmo objeto File. |
"append" | Cria um file handle para escrever os valores no arquivo (começando no fim do conteúdo do arquivo). Se o arquivo não existir em disco, é criado. Só se pode abrir um único file handle em modo "append" no mesmo objeto File. |
O valor do modo ** é sensível a maiúsculas e minúsculas.
Se utilizar o parâmetro options (objecto), pode passar mais opções para o file handle através das seguintes propriedades (estas propriedades podem ser lidas posteriormente a partir do objeto file handle aberto):
options | Tipo | Descrição | Por padrão |
---|---|---|---|
.mode | Text | Modo de abertura (ver mode acima) | "read" |
.charset | Text | Conjunto de carateres utilizado para ler ou escrever no ficheiro. Utilizar o nome padrão do conjunto (por exemplo "ISO-8859-1" ou "UTF-8") | "UTF-8" |
.breakModeRead | Text ou Number | Modo de tratamento das quebras de linha utilizadas na leitura do arquivo (veja abaixo) | "native" ou 1 |
.breakModeWrite | Text ou Number | Modo de processamento das quebras de linha utilizadas ao escrever no ficheiro (ver abaixo) | "native" ou 1 |
A função substitui todos os delimitadores de fim de linha originais. Por defeito, é utilizado o delimitador nativo, mas é possível definir outro delimitador. .breakModeRead
e .breakModeWrite
indicam o processamento a aplicar aos caracteres de fim de linha no documento. Pode utilizar um dos seguintes valores (texto ou número):
Modo de interrupção no texto | Break mode em numérico (constante) | Descrição |
---|---|---|
"native" | 1 (Document with native format ) | (Padrão) As quebras de linha são convertidas para o formato nativo do sistema operativo: LF (avanço de linha) no macOS, CRLF (retorno de carro + avanço de linha) no Windows |
"crlf" | 2 (Document with CRLF ) | As quebras de linha são convertidas em CRLF (retorno de carro + avanço de linha), o formato predefinido do Windows |
"cr" | 3 (Document with CR ) | As quebras de linha são convertidas em CR (carriage return), o formato padrão do Mac OS |
"lf" | 4 (Document with LF ) | As quebras de linha são convertidas para LF (line feed), o formato padrão Unix e macOS |
O modo de pausa como texto valor é sensível a maiúsculas e minúsculas.
Exemplo
Pretende criar um file handle para a leitura do ficheiro "ReadMe.txt":
var $f : 4D. File
var $fhandle : 4D. FileHandle
$f:=File("C:\\Documents\\Archives\\ReadMe.txt";fk platform path)
$fhandle:=$f.open("read")
.original
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
|
Descrição
A propriedade .original
devolve o elemento alvo de um alias, um atalho, ou um arquivo de ligação simbólica. O elemento alvo pode ser:
- um objeto File
- um objeto folder
Para arquivos não-alias, a propriedade retorna o mesmo objeto de arquivo que o arquivo.
Essa propriedade é apenas leitura.
.parent
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.parent : 4D. Folder
Descrição
A propriedade .parent
devolve A propriedade .parent
devolve. .
Essa propriedade é apenas leitura.
.path
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.path : Text
Descrição
A propriedade .path
devolve A propriedade .path
devolve. .
Essa propriedade é apenas leitura.
.platformPath
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.platformPath : Text
Descrição
A propriedade .platformPath
devolve o caminho do ficheiro expresso com a sintaxe da plataforma actual.
Essa propriedade é apenas leitura.
.rename()
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.rename( newName : Text ) : 4D.File
Parâmetro | Tipo | Descrição | |
---|---|---|---|
newName | Text | -> | Novo nome completo para o ficheiro |
Resultados | 4D. File | <- | Ficheiro renomeado |
|
Descrição
A função .rename()
renomeia o ficheiro com o nome que passou em newName e devolve o objecto renomeado File
.
O parâmetro newName deve cumprir as regras de nomeação (por exemplo, não deve conter caracteres como ":", "/", etc.), caso contrário é devolvido um erro. Se já existir um ficheiro com o mesmo nome, é devolvido um erro.
Note que a função modifica o nome completo do ficheiro, isto é, se não passar uma extensão em newName, o ficheiro terá um nome sem uma extensão.
Objeto devolvido
O objeto File
renomeado.
Exemplo
Se quiser renomear "ReadMe.txt" em "ReadMe_new.txt":
$toRename:=File("C:\\Documents\\Archives\\ReadMe.txt";fk platform path)
$newName:=$toRename.rename($toRename.name+"_new"+$toRename.extension)
.setAppInfo()
Histórico
Release | Mudanças |
---|---|
20 | Suporte de WinIcon |
19 | Adicionado |
.setAppInfo( info : Object )
Parâmetro | Tipo | Descrição | |
---|---|---|---|
info | Object | -> | Propriedades para escrever no arquivo .plist ou o recurso versão do arquivo .exe/.dll |
|
Descrição
A função .setAppInfo()
escreve as propriedades de info como conteúdo informativo de um arquivo .exe, .dll ou .plist.
A função deve ser utilizada com um arquivo .exe, .dll ou .plist existente. Se o ficheiro não existir no disco ou não for um ficheiro .exe, .dll ou .plist válido, a função não faz nada (não é gerado qualquer erro).
A função apenas é compatível com arquivos .plist em formato xml (baseado em texto). Um erro é retornado se usado com um arquivo .plist em formato binário.
Parâmetro info com um arquivo .exe ou .dll
A escrita de um arquivo .exe ou .dll só é possível no Windows.
Cada propriedade válida definida no parâmetro objeto info está escrita no recurso de versão do arquivo .exe ou .dll. As propriedades disponíveis são (qualquer outra propriedade será ignorada):
Propriedade | Tipo | Comentário |
---|---|---|
InternalName | Text | |
ProductName | Text | |
CompanyName | Text | |
LegalCopyright | Text | |
ProductVersion | Text | |
FileDescription | Text | |
FileVersion | Text | |
OriginalFilename | Text | |
WinIcon | Text | Caminho Posix do ficheiro .ico. Esta propriedade aplica-se apenas a ficheiros executáveis gerados por 4D. |
Para todas as propriedades, exceto WinIcon
, se passar um texto null ou vazio como valor, é escrita uma cadeia vazia na propriedade. Se passar um tipo de valor diferente de texto, este é transformado em string.
Para a propriedade WinIcon
, se o ficheiro de ícones não existir ou tiver um formato incorrecto, é gerado um erro.
Parâmetro info com um arquivo .plist
Cada propriedade válida definida no parâmetro objeto info está escrita no arquivo .plist como uma chave. Qualquer nome chave é aceito. Os tipos de valores são preservados sempre que possível.
Se um conjunto de chaves no parâmetro info já estiver definido no arquivo .plist, o seu valor é atualizado, mantendo o seu tipo original. Outras chaves existentes no arquivo .plist são deixadas intocadas.
Para definir um valor de tipo de data, o formato a utilizar é uma string de carimbo temporal json formada em ISO UTC sem milissegundos ("2003-02-01T01:02:03Z") como no editor plist de Xcode.
Exemplo
// set copyright and version of a .exe file (Windows)
var $exeFile : 4D. File
var $info : Object
$exeFile:=File(Application file; fk platform path)
$info:=New object
$info. LegalCopyright:="Copyright 4D 2021"
$info. ProductVersion:="1.0.0"
$exeFile.setAppInfo($info)
// set some keys in an info.plist file (all platforms)
var $infoPlistFile : 4D. File
var $info : Object
$infoPlistFile:=File("/RESOURCES/info.plist")
$info:=New object
$info. Copyright:="Copyright 4D 2021" //text
$info. ProductVersion:=12 //integer
$info. ShipmentDate:="2021-04-22T06:00:00Z" //timestamp
$infoPlistFile.setAppInfo($info)
Veja também
.setContent()
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.setContent ( content : Blob )
Parâmetro | Tipo | Descrição | |
---|---|---|---|
content | BLOB | -> | Novos conteúdos para o arquivo |
|
Descrição
A função .setContent( )
reescreve todo o conteúdo do ficheiro utilizando os dados armazenados no BLOB content. Para informações sobre BLOBs, consultar a secção BLOB .
Exemplo
$myFile:=Folder(fk documents folder).file("Archives/data.txt")
$myFile.setContent([aTable]aBlobField)
.setText()
Histórico
Release | Mudanças |
---|---|
19 R3 | Padrão para novos projectos: sem BOM e (macOS) LF para EOL |
17 R5 | Adicionado |
.setText ( text : Text {; charSetName : Text { ; breakMode : Integer } } )
.setText ( text : Text {; charSetNum : Integer { ; breakMode : Integer } } )
Parâmetro | Tipo | Descrição | |
---|---|---|---|
text | Text | -> | Texto a armazenar no arquivo |
charSetName | Text | -> | Nome do conjunto de caracteres |
charSetNum | Integer | -> | Número de conjuntos de caracteres |
breakMode | Integer | -> | Modo de processamento para retornos de linha |
|
Descrição
A função .setText()
escreve text como o novo conteúdo do ficheiro.
Se o ficheiro referenciado no objeto File
não existir no disco, é criado pela função. Quando o ficheiro já existir no disco, o seu conteúdo anterior é apagado, exceto se já estiver aberto, caso em que o seu conteúdo é bloqueado e é gerado um erro.
Em text, passe o texto a escrever no ficheiro. Pode ser um texto literal ("my text"), ou um campo/variável texto 4D.
Opcionalmente, pode designar o conjunto de caracteres a utilizar para escrever o conteúdo. Você pode passar também:
- em charSetName, uma string que contém o nome padrão definido (por exemplo "ISO-8859-1" ou "UTF-8"),
- ou em charSetNum, o MIBEnum ID (número) do nome de configuração padrão.
Para a lista de conjuntos de caracteres suportados por 4D, consulte a descrição do comando
CONVERT FROM TEXT
.
Se uma marca de ordem de byte (BOM) existe para o conjunto de caracteres, 4D a insere no ficheiro a menos que o conjunto de caracteres usado contenha o sufixo "-no-bom" (por exemplo, "UTF-8-no-bom"). Se não especificar um conjunto de caracteres, por defeito 4D usa o conjunto de caracteres "UTF-8" sem BOM.
Em breakMode, pode passar um número indicando o processamento a aplicar aos caracteres de fim de linha antes de os guardar no ficheiro. Estão disponíveis as seguintes constantes, encontradas no tema System Documents:
Parâmetros | Valor | Comentário |
---|---|---|
Document unchanged | 0 | Não processado |
Document with native format | 1 | (Padrão) As quebras de linha são convertidas para o formato nativo do sistema operativo: LF (avanço de linha) no macOS, CRLF (retorno de carro + avanço de linha) no Windows |
Documento com CRLF | 2 | As quebras de linha são convertidas em CRLF (retorno de carro + avanço de linha), o formato predefinido do Windows |
Documento com CR | 3 | As quebras de linha são convertidas em CR (carriage return), o formato padrão do Mac OS |
Documento com LF | 4 | As quebras de linha são convertidas para LF (line feed), o formato padrão Unix e macOS |
Por padrão, ao omitir o parâmetro breakMode , as quebras de linha são processadas no modo nativo (1).
Nota de Compatibilidade: As opções de compatibilidade estão disponíveis para a gestão da EOL e da BOM. Ver página Compatibilidade em doc.4d.com.
Exemplo
$myFile:=File("C:\\Documents\\Hello.txt";fk platform path)
$myFile.setText("Hello world")
.size
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.size : Real
Descrição
A propriedade .size
devolve o tamanho do arquivo expresso em bytes. Se o arquivo não existir em disco, o tamanho é 0.
Essa propriedade é apenas leitura.