Saltar para o conteúdo principal
Versão: v20 R4 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    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
VersãoMudanças
v19 R4Nova constante HTTP Client log file
v17 R5Adicionado

|

ParâmetroTipoDescriçã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.File. 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:

ParâmetrosValorComentá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:

ParâmetrosValorComentá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 Client log file24Arquivo de histórico criado pelo comando HTTP SET OPTION (HTTP client log). Armazenado na pasta Logs.
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.File. É 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âmetroTipoDescriçã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() 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âmetrosValorComentá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âmetroTipoDescrição
ResultadosParâ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
VersãoMudanças
v17 R5Adicionado

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

ParâmetroTipoDescriçã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:

ParâmetrosValorComentá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 A propriedade .modificationDate devolve.

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âmetroTipoDescriçã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.
caution

.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
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 ".". 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âmetroTipoDescrição
ResultadosObject<-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.

PropriedadeTipo
InternalNameText
ProductNameText
CompanyNameText
LegalCopyrightText
ProductVersionText
FileDescriptionText
FileVersionText
OriginalFilenameText

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

.setAppInfo()

.getContent()

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

.getContent( ) : Blob

ParâmetroTipoDescriçã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

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

.getIcon( { size : Integer } ) : Picture

ParâmetroTipoDescriçã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âmetroTipoDescriçã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:

ParâmetrosValorComentá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()

|

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

Esta propriedade é read/write.

.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 A função .copyTo().

Essa propriedade é apenas leitura.

.isFolder

Histórico
VersãoMudanças
v17 R5Adicionado

.isFolder : Boolean

Descrição

A propriedade .isFolder devolve A propriedade .platformPath devolve.

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 A propriedade .aceita a transação devolve.

Essa propriedade é apenas leitura.

.modificationTime

Histórico
VersãoMudanças
v17 R5Adicionado

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

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

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

.name : Text

Descrição

A propriedade .name devolve A propriedade .isFile devolve.

Essa propriedade é apenas leitura.

.open()

Histórico
VersãoMudanças
v19 R7Adicionado

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

ParâmetroTipoDescrição
modeText->Modo de abertura: "read", "write", "append"
optionsObject->Opções de abertura
Resultados4D.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:

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

optionsTipoDescriçãoPor padrão
.modeTextModo de abertura (ver mode acima)"read"
.charsetTextConjunto 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"
.breakModeReadText ou NumberModo de tratamento das quebras de linha utilizadas na leitura do arquivo (veja abaixo)"native" ou 1
.breakModeWriteText ou NumberModo 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 textoBreak 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
VersãoMudanças
v17 R5Adicionado

|

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 A propriedade .parent devolve. .

Essa propriedade é apenas leitura.

.path

Histórico
VersãoMudanças
v17 R5Adicionado

.path : Text

Descrição

A propriedade .path devolve A propriedade .path devolve. .

Essa propriedade é apenas leitura.

.platformPath

Histórico
VersãoMudanças
v17 R5Adicionado

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

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

ParâmetroTipoDescrição
newNameText->Novo nome completo para o ficheiro
Resultados4D. 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
VersãoMudanças
v20Suporte de WinIcon
v19Adicionado

.setAppInfo( info : Object )

ParâmetroTipoDescrição
infoObject->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):

PropriedadeTipoComentário
InternalNameText
ProductNameText
CompanyNameText
LegalCopyrightText
ProductVersionText
FileDescriptionText
FileVersionText
OriginalFilenameText
WinIconTextCaminho 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

.getAppInfo()

.setContent()

Histórico
VersãoMudanças
v17 R5Adicionado

.setContent ( content : Blob )

ParâmetroTipoDescrição
contentBLOB->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
VersãoMudanças
v19 R3Padrão para novos projectos: sem BOM e (macOS) LF para EOL
v17 R5Adicionado

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

ParâmetroTipoDescriçã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 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âmetrosValorComentá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 (avanço de linha) no macOS, CRLF (retorno de carro + avanço de linha) no Windows
Documento com CRLF2As quebras de linha são convertidas em CRLF (retorno de carro + avanço de linha), o formato predefinido do Windows
Documento com CR3As quebras de linha são convertidas em CR (carriage return), o formato padrão do 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.