Skip to main content
Version: v19 R8 BETA

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ãoMudanças
v17 R5Adicionado

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

ParâmetrosTipoDescrição
pathText->Rota do arquivo
fileConstantInteger->Constante de arquivo 4D
pathTypeInteger->fk posix path (por defeito) ou fk platform path
*->* para devolver o arquivo da base de dados anfitriã
Resultados4D. 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:

ConstanteValueComentário
fk platform path1Caminho expresso com uma sintaxe específica da plataforma (obrigatória em caso de caminho de plataforma)
fk posix path0Caminho 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:

ConstanteValueComentário
Backup history file19Arquivo 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 file13Arquivo atual do diário de backup. Armazenado na pasta Logs da aplicação.
Backup settings file1Arquivo padrão backup.4DSettings (formato xml), armazenado na pasta Settings do projecto
Backup settings file for data17backup.4DSettings file (formato xml) para o arquivo de dados, armazenado na pasta Settings da pasta de dados
Build application log file14Arquivo de registo atual em formato xml do construtor da aplicação. Armazenado na pasta Logs.
Build application settings file20Arquivo de configurações padrão do construtor da aplicação ("buildApp.4DSettings"). Armazenado na pasta Settings do projecto.
Compacting log file6Arquivo 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 file18arquivo 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 file12Arquivo de registo criado pelo comando SET DATABASE PARAMETER(Debug log recording) . Armazenado na pasta Logs.
Diagnostic log file11Arquivo de registo criado pelo comando SET DATABASE PARAMETER(Diagnostic log recording) . Armazenado na pasta Logs.
Directory file16directó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 file9Arquivo de registo criado pelo comando WEB SET OPTION(Web debug log) . Armazenado na pasta Logs.
HTTP log file8Arquivo de registo criado pelo comando WEB SET OPTION(Web log recording) . Armazenado na pasta Logs.
IMAP Log file23Arquivo de registo criado pelo comando SET DATABASE PARAMETER(IMAP Log) . Armazenado na pasta Logs.
Last backup file2Último arrquivo de cópia de segurança, denominado \<applicationName>[bkpNum].4BK, armazenado num local personalizado.
Last journal integration log file22Nome 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 file7Arquivo 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 file10Arquivo 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 file15Arquivo de registo criado pelo comando SET DATABASE PARAMETER(SMTP Log) . Armazenado na pasta Logs.
User settings file3settings.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 data4arquivo settings.4DSettings para dados atual, guardado na pasta Preferências ao lado do arquivo de dados.
Verification log file5Arquivo 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ãoMudanças
v18 R6Adicionado

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

.copyTo()

Histórico
VersãoMudanças
v17 R5Adicionado

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

ParâmetrosTipoDescrição
destinationFolder4D. Folder->Pasta de destino
newNameText->Nome para a copia
overwriteInteger->fk overwrite para substituir os elementos existentes
Resultados4D. 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

ConstanteValueComentário
fk overwrite4Sobrescrever 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ãoMudanças
v17 R5Adicionado

Não disponível para arquivos ZIP

.create() : Boolean

ParâmetrosTipoDescrição
ResultadosBooleano<-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ãoMudanças
v17 R5Adicionado

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

ParâmetrosTipoDescrição
destinationFolder4D. Folder->Pasta de destino para o pseudónimo ou atalho
aliasNameText->Nome do pseudónimo ou atalho
aliasTypeInteger->Tipo de ligação do pseudónimo
Resultados4D. 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:

ConstanteValueComentário
fk alias link0Alias link (padrão)
fk symbolic link1Link 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ãoMudanças
v17 R5Adicionado

.creationDate : Date

Descrição

A propriedade .aceita a transação devolve The .creationDate property returns.

Essa propriedade é apenas leitura.

.creationTime

Histórico
VersãoMudanças
v17 R5Adicionado

.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ãoMudanças
v17 R5Adicionado

.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ãoMudanças
v17 R5Adicionado

.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ãoMudanças
v17 R5Adicionado

.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ãoMudanças
v17 R5Adicionado

.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ãoMudanças
v19Adicionado

.getAppInfo() : Object

ParâmetrosTipoDescrição
ResultadosObjeto<-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.

PropriedadeTipo
InternalNameText
ProductNameText
CompanyNameText
LegalCopyrightText
ProductVersionText
FileDescriptionText
FileVersionText
OriginalFilenameText

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

.setAppInfo()

.getContent()

Histórico
VersãoMudanças
v19 R2Returns 4D. Blob
v17 R5Adicionado

.getContent( ) : 4D. Blob

ParâmetrosTipoDescrição
Resultados4D.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ãoMudanças
v17 R5Adicionado

.getIcon( { size : Integer } ) : Picture

ParâmetrosTipoDescrição
sizeInteger->Longitude de lado da imagem devolvida (píxeles)
ResultadosImagem<-Í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ãoMudanças
v17 R5Adicionado

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

ParâmetrosTipoDescrição
charSetNameText->Nome do conjunto de caracteres
charSetNumInteger->Número de conjuntos de caracteres
breakModeInteger->Modo de processamento para quebras de linha
ResultadosText<-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:

ConstanteValueComentário
Document unchanged0Não processado
Document with native format1(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 CRLF2Quebras de linha são convertidas em formato Windows: CRLF (retorno de carro + quebra de linha)
Documento com CR3Quebras de linha são convertidas para o formato OS X: CR (retorno de carro)
Documento com LF4Quebras 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ãoMudanças
v17 R5Adicionado

.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ãoMudanças
v17 R5Adicionado

.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ãoMudanças
v17 R5Adicionado

.isFile : Boolean

Descrição

A propriedade .isFile devolve The .copyTo() function.

Essa propriedade é apenas leitura.

.isFolder

Histórico
VersãoMudanças
v17 R5Adicionado

.isFolder : Boolean

Descrição

A propriedade .isFolder devolve always true for a file.

Essa propriedade é apenas leitura.

.isWritable

Histórico
VersãoMudanças
v17 R5Adicionado

.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ãoMudanças
v17 R5Adicionado

.modificationDate : Date

Descrição

A propriedade .modificationDate devolve The .modificationDate property returns.

Essa propriedade é apenas leitura.

.modificationTime

Histórico
VersãoMudanças
v17 R5Adicionado

.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ãoMudanças
v17 R5Adicionado

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

ParâmetrosTipoDescrição
destinationFolder4D. Folder->Pasta de destino
newNameText->Nome completo para o arquivo movido
Resultados4D. 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ãoMudanças
v17 R5Adicionado

.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ãoMudanças
v19 R7Adicionado

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

ParâmetrosTipoDescrição
modeText->Modo de abertura: "ler", "escrever", "anexar".
optionsObjeto->Opções de abertura
Resultados4D.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:

modeDescriçã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):

optionsTipoDescriçãoPredefinição
.modeTextModo de abertura (ver modo acima)"read"
.charsetTextCharset 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"
.breakModeReadText ou NumberModo de processamento para quebras de linha utilizado na leitura do arquivo (ver abaixo)"nativo" ou 1
.breakModeWriteText ou NumberModo 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 textoModo 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ãoMudanças
v17 R5Adicionado

.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ãoMudanças
v17 R5Adicionado

.parent : 4D. Folder

Descrição

A propriedade .parent devolve The .parent property returns. .

Essa propriedade é apenas leitura.

.path

Histórico
VersãoMudanças
v17 R5Adicionado

.path : Text

Descrição

A propriedade .path devolve The .path property returns. .

Essa propriedade é apenas leitura.

.platformPath

Histórico
VersãoMudanças
v17 R5Adicionado

.platformPath : Text

Descrição

A propriedade .platformPath devolve The .platformPath property returns.

Essa propriedade é apenas leitura.

.rename()

Histórico
VersãoMudanças
v17 R5Adicionado

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

ParâmetrosTipoDescrição
newNameText->Novo nome completo para o arquivo
Resultados4D. 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ãoMudanças
v19Adicionado

.setAppInfo( info : Object )

ParâmetrosTipoDescrição
infoObjeto->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):

PropriedadeTipo
InternalNameText
ProductNameText
CompanyNameText
LegalCopyrightText
ProductVersionText
FileDescriptionText
FileVersionText
OriginalFilenameText

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

.getAppInfo()

.setContent()

Histórico
VersãoMudanças
v17 R5Adicionado

.setContent ( content : Blob )

ParâmetrosTipoDescrição
contentBLOB->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ãoMudanças
v19 R3Default for new projects: no BOM and (macOS) LF for EOL
v17 R5Adicionado

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

ParâmetrosTipoDescrição
textText->Texto a armazenar no arquivo
charSetNameText->Nome do conjunto de caracteres
charSetNumInteger->Número de conjuntos de caracteres
breakModeInteger->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:

ConstanteValueComentário
Document unchanged0Não processado
Document with native format1(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 CRLF2As quebras de linha são convertidas para CRLF (carriage return + line feed), o formato padrão do Windows
Documento com CR3As quebras de linha são convertidas para CR (carriage return), o formato padrão do Classic Mac OS
Documento com LF4As 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ãoMudanças
v17 R5Adicionado

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