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 The .isFolder property returns |
.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 The .creationDate property returns |
.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 .exe, .dll ou .plist como um objeto. |
.getContent( ) : 4D. 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 The .copyTo() function |
.isFolder : Boolean always true for a file |
.isWritable : Boolean verdadeiro se o arquivo existir em disco e for gravável |
.modificationDate : Date The .modificationDate property returns |
.modificationTime : Time The .modificationTime property returns |
.moveTo( destinationFolder : 4D. Folder { ; newName : Text } ) : 4D. File move ou renomeia o arquivo `` para o objeto especificado destinationFolder |
.name : Text o nome do arquivo, sem extensão (se houver) |
.open( { mode : Text } ) : 4D.FileHandle .open( { options : Object } ) : 4D.FileHandle cria e devolve um novo objeto 4D.FileHandle no arquivo, no modo especificado ou com as opções especificadas |
.original : 4D. File .original : 4D. Folder o elemento alvo de um alias, um atalho, ou um arquivo de ligação simbólica |
.parent : 4D. Folder The .parent property returns |
.path : Text The .path property returns |
.platformPath : Text The .platformPath property returns |
.rename( newName : Text ) : 4D. File renomeia o arquivo com o nome que passou em newName e devolve o objecto renomeado File |
.setAppInfo( info : Object ) escreve as propriedades info como conteúdo informativo de um arquivo .exe, .dll ou .plist |
.setContent ( content : Blob ) reescreve todo o conteúdo do arquivo utilizando os dados armazenados no conteúdo ** BLOB |
.setText ( text : Text {; charSetName : Text { ; breakMode : Integer } } ) .setText ( text : Text {; charSetNum : Integer { ; breakMode : Integer } } ) escreve o texto ** como o novo conteúdo do arquivo |
.size : Real o tamanho do arquivo expresso em bytes |
File
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
File ( path : Text { ; pathType : Integer }{ ; } ) : 4D.File
File ( fileConstant : Integer { ; } ) : 4D.File
Parâmetros | 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.POP3Transporter
. O comando aceita duas sintaxes:
File ( path { ; pathType } { ; * })
No parâmetro path , passe um file path string. Pode utilizar uma string personalizada ou um sistema de ficheiros (por exemplo, "/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:
Constante | Value | 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:
Constante | Value | 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 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
Versão | Mudanças |
---|---|
v18 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.POP3Transporter
. É idêntico ao comando File
(atalho).
It is recommended to use the
File
shortcut command instead of4D. File.new()
.
.copyTo()
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.copyTo( destinationFolder : 4D. Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D. File
Parâmetros | 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()
The .isFolder
property returns .
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
Constante | Value | 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
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
Não disponível para arquivos ZIP
.create() : Boolean
Parâmetros | Tipo | Descrição | |
---|---|---|---|
Resultados | Booleano | <- | 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
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.createAlias( destinationFolder : 4D. Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D. File
Parâmetros | 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:
Constante | Value | 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
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.creationDate : Date
Descrição
A propriedade .aceita a transação
devolve The .creationDate
property returns.
Essa propriedade é apenas leitura.
.creationTime
Histórico
Versão | Mudanças |
---|---|
v17 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
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.delete( )
| Parâmetros | Tipo | | Descrição | | ---------- | ---- | | ----------------------------------------------------- | | | | | Não exige nenhum parâmetro|
|
Descrição
A função .delete()
apaga o arquivo.
Se o arquivo estiver aberto atualmente, um erro é gerado.
Se o arquivo não existir no disco, a função não faz nada (não é gerado nenhum erro).
ATENÇÃO:
.delete( )
pode apagar qualquer arquivo de um 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
End if
.exists
Histórico
Versão | Mudanças |
---|---|
v17 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
Versão | Mudanças |
---|---|
v17 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 "." A propriedade devolve uma string vazia se o nome do arquivo não tiver extensão.
Essa propriedade é apenas leitura.
.fullName
Histórico
Versão | Mudanças |
---|---|
v17 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
Versão | Mudanças |
---|---|
v19 | Adicionado |
.getAppInfo() : Object
Parâmetros | Tipo | Descrição | |
---|---|---|---|
Resultados | Objeto | <- | Conteúdo do recurso da versão .exe/.dll ou arquivo .plist |
|
Descrição
A função .getAppInfo()
retorna os conteúdos de um arquivo .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 propriedade são Texto.
Propriedade | Tipo |
---|---|
InternalName | Text |
ProductName | Text |
CompanyName | Text |
LegalCopyright | Text |
ProductVersion | Text |
FileDescription | Text |
FileVersion | Text |
OriginalFilename | Text |
Objecto devolvido com um arquivo .plist
O conteúdo do arquivo xml é 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 JSON array.
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
Versão | Mudanças |
---|---|
v19 R2 | Returns 4D. Blob |
v17 R5 | Adicionado |
.getContent( ) : 4D. Blob
Parâmetros | 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
A 4D. Blob
object.
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) //If a document has been chosen
[aTable]aBlobField:=File($vPath;fk platform path).getContent()
End if
.getIcon()
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.getIcon( { size : Integer } ) : Picture
Parâmetros | 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
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.getText( { charSetName : Text { ; breakMode : Integer } } ) : Text
.getText( { charSetNum : Integer { ; breakMode : Integer } } ) : Text
Parâmetros | 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:
Constante | Value | 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()
... você recebe o seguinte por $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.
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
Versão | Mudanças |
---|---|
v17 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.
Essa propriedade é apenas leitura.
.isAlias
Histórico
Versão | Mudanças |
---|---|
v17 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
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.isFile : Boolean
Descrição
A propriedade .isFile
devolve The .copyTo()
function.
Essa propriedade é apenas leitura.
.isFolder
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.isFolder : Boolean
Descrição
A propriedade .isFolder
devolve always true for a file.
Essa propriedade é apenas leitura.
.isWritable
Histórico
Versão | Mudanças |
---|---|
v17 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
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.modificationDate : Date
Descrição
A propriedade .modificationDate
devolve The .modificationDate
property returns.
Essa propriedade é apenas leitura.
.modificationTime
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.modificationTime : Time
Descrição
A propriedade .modificationTime
devolve The .modificationTime
property returns (expresso como um número de segundos a partir das 00:00).
Essa propriedade é apenas leitura.
.moveTo()
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.moveTo( destinationFolder : 4D. Folder { ; newName : Text } ) : 4D. File
Parâmetros | Tipo | Descrição | |
---|---|---|---|
destinationFolder | 4D. Folder | -> | Pasta de destino |
newName | Text | -> | Nome completo para o arquivo movido |
Resultados | 4D. File | <- | Arquivo movido |
|
Descrição
A função .moveTo()
move ou renomeia o arquivo `` para o objeto especificado destinationFolder.
A destinationFolder deve existir em disco, senão um erro é gerado.
Como 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
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.name : Text
Descrição
A propriedade .name
devolve o nome do arquivo, sem extensão (se houver).
Essa propriedade é apenas leitura.
.open()
Histórico
Versão | Mudanças |
---|---|
v19 R7 | Adicionado |
.open( { mode : Text } ) : 4D.FileHandle
.open( { options : Object } ) : 4D.FileHandle
Parâmetros | Tipo | Descrição | |
---|---|---|---|
mode | Text | -> | Modo de abertura: "ler", "escrever", "anexar". |
options | Objeto | -> | Opções de abertura |
Resultados | 4D.FileHandle | <- | Novo objeto de manipulação de arquivos |
|
Descrição
A função .open()
cria e devolve um novo objeto 4D.FileHandle no arquivo, no modo especificado ou com as opções 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 modo (texto), passe o modo de abertura para a manipulação do arquivo:
mode | Descrição |
---|---|
"read" | (Predefinição) Cria um handle de arquivo para ler valores do arquivo. Se o arquivo não existir em disco, um erro é retornado. Pode abrir quantas handles de arquivo quiser em modo "ler" no mesmo objeto de arquivo. |
"write" | Cria um handle de arquivo para escrever 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 handle de arquivo em modo "escrever" no mesmo objeto de arquivo. |
"append" | Cria um handle de arquivo para escrever 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 handle de arquivo no modo "anexar" no mesmo objecto Arquivo. |
O valor do modo ** é sensível a maiúsculas e minúsculas.
Se utilizar o parâmetro opções (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 aberto file handle):
options | Tipo | Descrição | Predefinição |
---|---|---|---|
.mode | Text | Modo de abertura (ver modo acima) | "read" |
.charset | Text | Charset utilizado na leitura ou na escrita do arquivo. Utilizar o nome padrão do conjunto (por exemplo "ISO-8859-1" ou "UTF-8") | "UTF-8" |
.breakModeRead | Text ou Number | Modo de processamento para quebras de linha utilizado na leitura do arquivo (ver abaixo) | "nativo" ou 1 |
.breakModeWrite | Text ou Number | Modo de processamento para quebras de linha utilizado quando se escreve no arquivo (ver abaixo) | "nativo" ou 1 |
Os documentos .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 pausa como texto | Modo de pausa como número (constante) | Descrição |
---|---|---|
"native" | 1 (Documento com formato nativo ) | (Default) As quebras de linha são convertidas para o formato nativo do sistema operativo: LF (line feed) sob macOS, CRLF (carriage return + line feed) sob Windows |
"crlf" | 2 (Documento com CRLF ) | As quebras de linha são convertidas para CRLF (carriage return + line feed), o formato padrão do Windows |
"cr" | 3 (Documento com CR ) | As quebras de linha são convertidas para CR (carriage return), o formato padrão do Classic Mac OS |
"lf" | 4 (Documento com 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 cabo de arquivo para a leitura do arquivo "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
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.original : 4D. File
.original : 4D. Folder
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
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.parent : 4D. Folder
Descrição
A propriedade .parent
devolve The .parent
property returns. .
Essa propriedade é apenas leitura.
.path
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.path : Text
Descrição
A propriedade .path
devolve The .path
property returns. .
Essa propriedade é apenas leitura.
.platformPath
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.platformPath : Text
Descrição
A propriedade .platformPath
devolve The .platformPath
property returns.
Essa propriedade é apenas leitura.
.rename()
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.rename( newName : Text ) : 4D. File
Parâmetros | Tipo | Descrição | |
---|---|---|---|
newName | Text | -> | Novo nome completo para o arquivo |
Resultados | 4D. File | <- | Renomeado arquivo |
|
Descrição
A função .rename()
renomeia o arquivo 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 arquivo 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 objecto 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
Versão | Mudanças |
---|---|
v19 | Adicionado |
.setAppInfo( info : Object )
Parâmetros | Tipo | Descrição | |
---|---|---|---|
info | Objeto | -> | Propriedades para escrever no recurso da versão .exe/.dll ou arquivo .plist |
|
Descrição
A função .setAppInfo()
escreve as propriedades 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. The function must be used with an existing .exe, .dll or .plist file.
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.
info objecto de parâmetro 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 de objecto 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 |
---|---|
InternalName | Text |
ProductName | Text |
CompanyName | Text |
LegalCopyright | Text |
ProductVersion | Text |
FileDescription | Text |
FileVersion | Text |
OriginalFilename | Text |
Se passar um texto nulo ou vazio como valor, uma string vazia é escrita na propriedade. Se passar um tipo de valor diferente do texto, este é transformado em string.
info objeto de parâmetro com um arquivo .plist
Cada propriedade válida definida no parâmetro do objecto 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
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.setContent ( content : Blob )
Parâmetros | Tipo | Descrição | |
---|---|---|---|
content | BLOB | -> | Novos conteúdos para o arquivo |
|
Descrição
A função .setContent()
reescreve todo o conteúdo do arquivo utilizando os dados armazenados no conteúdo ** BLOB. 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
Versão | Mudanças |
---|---|
v19 R3 | Default for new projects: no BOM and (macOS) LF for EOL |
v17 R5 | Adicionado |
.setText ( text : Text {; charSetName : Text { ; breakMode : Integer } } )
.setText ( text : Text {; charSetNum : Integer { ; breakMode : Integer } } )
Parâmetros | 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 quebras de linha |
|
Descrição
A função .setText()
escreve o texto ** como o novo conteúdo do arquivo.
Se o arquivo referenciado no arquivo `` não existir no disco, ele é criado pela função. Quando o arquivo 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.
No texto **, passe o texto para escrever para o arquivo. Pode ser um literal ("o meu texto"), ou um campo de texto 4D ou variável.
Opcionalmente, pode designar o conjunto de caracteres a ser utilizado para a escrita 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 existir uma Marca de Ordem de Byte (BOM) para o conjunto de caracteres, 4D insere-a no arquivo, a menos que o conjunto de caracteres utilizado contenha o sufixo "-no-bom" (por exemplo, "UTF-8-no-bom"). Se não especificar um conjunto de caracteres, por padrão 4D utiliza 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 arquivo. As constantes seguintes, encontradas no tema System Documents , estão disponíveis:
Constante | Value | 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 (line feed) em macOS, CRLF (carriage return + line feed) em Windows |
Documento com CRLF | 2 | As quebras de linha são convertidas para CRLF (carriage return + line feed), o formato padrão do Windows |
Documento com CR | 3 | As quebras de linha são convertidas para CR (carriage return), o formato padrão do Classic 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
Versão | Mudanças |
---|---|
v17 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.