Saltar para o conteúdo principal
Versão: 19

Folder

Folder os objectos são criados com o comando Folder . Contêm referências a pastas que podem ou não existir efectivamente no disco. Por exemplo, quando executa o comando Folder para criar uma nova pasta, é criado um objecto válido Folder mas nada é realmente armazenado no disco até chamar a função folder.create() .

Exemplo

O exemplo seguinte cria uma pasta "JohnSmith":

Form.curfolder:=Folder(fk database folder)
Form.curfolder:=Folder("C:\\Users\\JohnSmith\\";fk platform path)

Pathnames

Objetos Pasta são compatíveis com vários pathnames, incluindo filesystems ou posix syntax. Os pathnames suportados são detalhados na página Pathnames .

Objecto Folder

.copyTo( destinationFolder : 4D. Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D. Folder    copia o objecto Folder para o objecto especificado destinationFolder
.create() : Boolean    cria uma pasta no disco de acordo com as propriedades do objecto Folder
.createAlias( destinationFolder : 4D. Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D. File    cria um pseudónimo (macOS) ou um atalho (Windows)
.creationDate : Date    a data de criação da pasta
.creationTime : Time    a hora da criação da pasta
.delete( { option : Integer } )    apaga a pasta
.exists : Boolean    true se a pasta existir no disco
.extension : Text    devolve a extensão do nome da pasta (se houver)
.file( path : Text ) : 4D. File    a objecto File dentro do objecto Folder e devolve a sua referência
.files( { options : Integer } ) : Collection    uma colecção dos objectos File contidos na pasta
.folder( path : Text ) : 4D. Folder    cria um objecto Folder dentro do objecto pai Folder e devolve a sua referência
.folders( { options : Integer } ) : Collection    devolve uma colecção dos objetos Folder contidos na pasta pai
.fullName : Text    devolve o nome completo da pasta, incluindo a sua extensão (se houver)
.getIcon( { size : Integer } ) : Picture    devolve o ícone da pasta
.hidden : Boolean     true se a pasta for definida como "escondida" ao nível do sistema
.isAlias : Boolean    sempre false para um objecto Folder
.isFile : Boolean    sempre false para uma pasta
.isFolder : Boolean    sempretrue para uma pasta
.isPackage : Boolean    true se a pasta for um pacote em macOS (e existir em disco)
.modificationDate : Date     a data da última modificação da pasta
.modificationTime : Time    a hora da última modificação da pasta
.name : Text     o nome da pasta, sem extensão (se houver)
.original : 4D. Folder    o mesmo objecto Folder que a pasta
.parent : 4D. Folder    o objecto Folder pai da pasta
.path : Text    o caminho POSIX da pasta
.platformPath : Text    o caminho da pasta expresso com a sintaxe da plataforma actual
.moveTo( destinationFolder : 4D. Folder { ; newName : Text } ) : 4D. Folder    move ou renomeia o objecto Folder (pasta de origem) para o objecto especificado destinationFolder
.rename( newName : Text ) : 4D. Folder    renomeia a pasta com o nome que passou em newName e devolve o objecto renomeado Folder

Folder

Histórico
ReleaseMudanças
17 R5Adicionado

Folder ( path : Text { ; pathType : Integer }{ ; * } ) : 4D.Folder
Folder ( folderConstant : Integer { ; * } ) : 4D.Folder

ParâmetroTipoDescrição
pathText->Folder path
folderConstantInteger->Constante Pasta 4D
pathTypeInteger->fk posix path (por defeito) ou fk platform path
*->* para devolver a pasta da base de dados do anfitrião
Resultados4D. Folder<-Novo Objeto Folder

|

Descrição

O comando Folder cria e devolve um novo objecto do tipo 4D.Folder. O comando aceita duas sintaxes:

Folder ( path { ; pathType } { ; * } )

No parâmetro path , passe uma string de rotas de pasta. Pode utilizar uma string personalizada ou um sistema de arquivos (por exemplo, "/DATA").

Apenas são compatíveis com os nomes de caminho absolutos com o comando Folder .

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)

Folder ( folderConstant { ; * } )

No parâmetro folderConstant , passe uma pasta 4D incorporada ou de sistema, utilizando uma das seguintes constantes:

ParâmetrosValorComentário
fk applications folder116
fk data folder9Sistema de ficheiros associado: "/DATA"
fk database folder4Sistema de arquivos associado: "/PACKAGE"
fk desktop folder115
fk documents folder117Pasta de documentos do utilizador
fk licenses folder1Pasta contendo os arquivos de licença 4D da máquina
fk logs folder7Sistema de arquivos associado: "/LOGS"
fk mobileApps folder10
fk remote database folder3Pasta de base de dados 4D criada em cada máquina 4D remota
fk resources folder6Sistema de arquivos associado: "/DATA"
fk system folder100
fk user preferences folder04D folder that stores user preference files within the \<userName> directory.
fk web root folder8Pasta raiz atual da Web da base de dados: se estiver dentro do pacote "/PACKAGE/percurso", caso contrário, caminho completo

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 objeto nulo é sempre devolvido.

No Windows, em clientes fusionados, a localização das pastas incorporadas é modificada se for utilizada a tecla ShareLocalResourcesOnWindowsClient BuildApp key .

4D. Folder.new()

Histórico
ReleaseMudanças
18 R6Adicionado

4D.Folder.new ( path : Text { ; pathType : Integer } ) : 4D.Folder
4D.Folder.new ( folderConstant : Integer ) : 4D.Folder

Descrição

A função 4D. Folder.new() cria e devolve um novo objecto do tipo 4D.Folder. Elle est identique à la commande Folder (raccourci).

It is recommended to use the Folder shortcut command instead of 4D. Folder.new().

.copyTo()

Histórico
ReleaseMudanças
17 R5Adicionado

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

ParâmetroTipoDescrição
destinationFolder4D. Folder->Pasta de destino
newNameText->Nome para a copia
overwriteInteger->fk overwrite para substituir os elementos existentes
Resultados4D. Folder<-Pasta ou arquivo copiado

|

Descrição

A função .copyTo() copia o objecto Folder para o objecto especificado destinationFolder.

A destinationFolder deve existir em disco, senão um erro é gerado.

Como padrão, a pasta é copiada com o nome da pasta 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 uma pasta 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 Folder copiado.

Exemplo

Se quiser copiar uma pasta Imágens da pasta de documentos do usuário a pasta da Database:

var $userImages; $copiedImages : 4D.Folder
$userImages:=Folder(fk documents folder).folder("Pictures")
$copiedImages:=$userImages.copyTo(Folder(fk database folder);fk overwrite)

.create()

Histórico
ReleaseMudanças
17 R5Adicionado

.create() : Boolean

ParâmetroTipoDescrição
ResultadosParâmetros<-Verdadeiro se a pasta foi criada com sucesso, falso caso contrário

|

Descrição

A função .create() cria uma pasta no disco de acordo com as propriedades do objecto Folder.

Se necessário, a função cria a pasta hierachy como descrito na platformPath ou caminho propriedades. Se a pasta já existir no disco, a função não faz nada (não é atirado nenhum erro) e retorna falso.

Valor retornado

  • Verdadeiro se a pasta for criada com sucesso;
  • Falso se já existir uma pasta com o mesmo nome ou se tiver ocorrido um erro.

Exemplo 1

Criar uma pasta vazia na pasta da base de dados:

var $created : Boolean
$created:=Folder("/PACKAGE/SpecialPrefs").create()

Exemplo 2

Criação da pasta "/Arquivos2019/Janeiro/" na pasta da base de dados:

$newFolder:=Folder("/PACKAGE/Archives2019/January")
If($newFolder.create())
ALERT("The "+$newFolder.name+" folder was created.")
Else
ALERT("Impossible to create a "+$newFolder.name+" folder.")
End if
Else
ALERT("Impossível criar uma pasta "+$newFolder.name+".")
End if

.createAlias()

Histórico
ReleaseMudanças
17 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<-Alias ou referência de atalho

|

Descrição

A função .createAlias() cria um pseudónimo (macOS) ou um atalho (Windows) para a pasta com o nome aliasName especificado nome 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

Deseja criar um pseudónimo para uma pasta de arquivo na sua pasta de base de dados:

$myFolder:=Folder("C:\\Documents\\Archives\\2019\\January";fk platform path)
$aliasFile:=$myFolder.createAlias(Folder("/PACKAGE");"Jan2019")

.creationDate

Histórico
ReleaseMudanças
17 R5Adicionado

.creationDate : Date

Descrição

A propriedade .aceita a transação devolve a data de criação da pasta.

Essa propriedade é apenas leitura.

.creationTime

Histórico
ReleaseMudanças
17 R5Adicionado

.creationTime : Time

Descrição

A propriedade .creationTime devolve a hora da criação da pasta (expresso como um número de segundos a partir das 00:00).

Essa propriedade é apenas leitura.

.delete()

Histórico
ReleaseMudanças
17 R5Adicionado

.delete( { option : Integer } )

ParâmetroTipoDescrição
optionInteger->Opção de eliminação de pasta

|

Descrição

A função .delete() apaga a pasta.

Por padrão, por razões de segurança, se omitir o parâmetro de opção, .delete( ) só permite a eliminação de pastas vazias. Se quiser que o comando possa apagar pastas que não estejam vazias, deve utilizar o parâmetro de opção com uma das seguintes constantes:

ParâmetrosValorComentário
Delete only if empty0Elimina a pasta apenas quando está vazia
Delete with contents1Apaga a pasta juntamente com tudo o que a mesma contém

Quando Apagar apenas se for aprovado vazio ou se omitir o parâmetro de opção:

  • A pasta só é apagada se estiver vazia; caso contrário, o comando não faz nada e é gerado um erro -47.
  • Se a pasta não existir, o erro -120 é gerado.

Quando Apagar com conteúdo for aprovado:

  • A pasta, juntamente com todo o seu conteúdo, é apagada. Aviso: Mesmo quando esta pasta e/ou o seu conteúdo estiver bloqueado ou definido para apenas leitura, se o utilizador actual tiver direitos de acesso adequados, a pasta (e conteúdo) continua a ser eliminada.
  • Se esta pasta, ou qualquer dos arquivos que conter, não puder ser apagada, a eliminação é abortada assim que o primeiro elemento inacessível for detectado, e um erro(*) é devolvido. Neste caso, a pasta pode ser apenas parcialmente apagada. Quando a eliminação é abortada, pode utilizar o comando GET LAST ERROR STACK para recuperar o nome e o caminho do ficheiro ofensivo.
  • Se a pasta não existir, o comando não faz nada e nenhum erro é devolvido. (*) Windows: -54 (Attempt to open locked file for writing) macOS: -45 (The file is locked or the pathname is not correct)

.exists

Histórico
ReleaseMudanças
17 R5Adicionado

.exists : Boolean

Descrição

A propriedade .exists devolve true se a pasta existir no discoe false de outra forma.

Essa propriedade é apenas leitura.

.extension

Histórico
ReleaseMudanças
17 R5Adicionado

.extension : Text

Descrição

A propriedade .extension devolve a extensão do nome da pasta (se houver). Uma extensão sempre começa com ".". Uma extensão sempre começa com "." A propriedade devolve uma string vazia se o nome da pasta não tiver extensão.

Essa propriedade é apenas leitura.

.file()

Histórico
ReleaseMudanças
17 R5Adicionado

.file( path : Text ) : 4D. File

ParâmetroTipoDescrição
pathText->Rota POSIX relativa
Resultados4D. File<-Objeto File (null se a rota não for válida)

|

Descrição

A função .file() cria a objecto File dentro do objecto Folder e devolve a sua referência.

Em path, passe uma rota relativa POSIX para designar o arquivo a devolver. A rota se avaliará a partir da pasta pai como raíz.

Valor retornado

Um objeto File ou null se path não for válido.

Exemplo

var $myPDF : 4D. File
$myPDF:=Folder(fk documents folder).file("Pictures/info.pdf")

.files()

Histórico
ReleaseMudanças
17 R5Adicionado

.files( { options : Integer } ) : Collection

ParâmetroTipoDescrição
optionsInteger->Opções da lista de arquivos
ResultadosCollection<-Coleção de objetos de arquivo filho

|

Descrição

A função .files() devolve uma colecção dos objectos File contidos na pasta.

Os apelidos ou links simbolicos não são resolvidos.

Como padrão, se omitir o parâmetro options, só se devolvem na coleção os arquivos de primeiro nivel da pasta, assim como os arquivos ou pastas invisíveis. Pode modificar isso passando, no parâmetro options, uma ou várias das constantes abaixo:

ParâmetrosValorComentário
fk recursive1A coleção contém arquivos da pasta especificada e suas subpastas
fk ignore invisible8Arquivos invisíveis não estão listados

Valor retornado

Coleção de objetos File.

Exemplo 1

Se quiser saber se há arquivos invisíveis na pasta Database:

 var $all; $noInvisible : Collection
$all:=Folder(fk database folder).files()
$noInvisible:=Folder(fk database folder).files(fk ignore invisible)
If($all.length#$noInvisible.length)
ALERT("Database folder contains hidden files.")
End if
End if
End if

Exemplo 2

Se quiser obter todos os arquivos que não são invisíveis na pasta Documents:

 var $recursive : Collection
$recursive:=Folder(fk documents folder).files(fk recursive+fk ignore invisible)

.folder()

Histórico
ReleaseMudanças
17 R5Adicionado

.folder( path : Text ) : 4D. Folder

ParâmetroTipoDescrição
pathText->Rota POSIX relativa
Resultados4D. Folder<-Objeto pasta criado (null se pathnão for válido)

|

Descrição

A função .folder() cria um objecto Folder dentro do objecto pai Folder e devolve a sua referência.

Em path, passe uma rota relativa POSIX para designar a pasta a devolver. A rota se avaliará a partir da pasta pai como raíz.

Valor retornado

Um objeto Folder ou null se path não for válido.

Exemplo

 var $mypicts : 4D. Folder
$mypicts:=Folder(fk documents folder).folder("Pictures")

.folders()

Histórico
ReleaseMudanças
17 R5Adicionado

.folders( { options : Integer } ) : Collection

ParâmetroTipoDescrição
optionsInteger->Opções da lista de pasta
ResultadosCollection<-Coleção de objetos de pasta filho

|

Descrição

A função .folders() devolve uma colecção dos objetos Folder contidos na pasta pai.

Como padrão, se omitir o parâmetro options, só se devolvem as pastas no primeiro nível da pasta. Pode modificar isso passando, no parâmetro options, uma ou várias das constantes abaixo:

ParâmetrosValorComentário
fk recursive1A coleção contém pastas da pasta especificada e suas subpastas
fk ignore invisible8Pastas invisíveis não estão listados

Valor retornado

Coleção de objetos Folder.

Exemplo

Se quiser a coleção de todas as pastas e subpastas da pasta database:

 var $allFolders : Collection
$allFolders:=Folder("/PACKAGE").folders(fk recursive)

.fullName

Histórico
ReleaseMudanças
17 R5Adicionado

.fullName : Text

Descrição

A propriedade .fullName devolve o nome completo da pasta, incluindo a sua extensão (se houver).

Essa propriedade é apenas leitura.

.getIcon()

Histórico
ReleaseMudanças
17 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 da pasta.

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 a pasta não existir no disco, se devolve um icone vazio como padrão.

Valor retornado

Imagen do icone da pasta.

.hidden

Histórico
ReleaseMudanças
17 R5Adicionado

.hidden : Boolean

Descrição

A propriedade .size devolve true se a pasta for definida como "escondida" ao nível do sistemae false de outra forma.

Essa propriedade é apenas leitura.

.isAlias

Histórico
ReleaseMudanças
17 R5Adicionado

.isAlias : Boolean

Descrição

A propriedade .isAlias devolve sempre false para um objecto Folder.

Essa propriedade é apenas leitura.

.isFile

Histórico
ReleaseMudanças
17 R5Adicionado

.isFile : Boolean

Descrição

A propriedade .isFile devolve sempre false para uma pasta.

Essa propriedade é apenas leitura.

.isFolder

Histórico
ReleaseMudanças
17 R5Adicionado

.isFolder : Boolean

Descrição

A propriedade .isFolder devolve sempretrue para uma pasta.

Essa propriedade é apenas leitura.

.isPackage

Histórico
ReleaseMudanças
17 R5Adicionado

.isPackage : Boolean

Descrição

A propriedade .isPackage devolve true se a pasta for um pacote em macOS (e existir em disco). .

Em Windows, .isPackage sempre devolve false.

Essa propriedade é apenas leitura.

.modificationDate

Histórico
ReleaseMudanças
17 R5Adicionado

.modificationDate : Date

Descrição

A propriedade .modificationDate devolve a data da última modificação da pasta.

Essa propriedade é apenas leitura.

.modificationTime

Histórico
ReleaseMudanças
17 R5Adicionado

.modificationTime : Time

Descrição

A propriedade .modificationTime devolve a hora da última modificação da pasta (expresso como um número de segundos a partir das 00:00).

Essa propriedade é apenas leitura.

.moveTo()

Histórico
ReleaseMudanças
17 R5Adicionado

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

ParâmetroTipoDescrição
destinationFolder4D. Folder->Pasta de destino
newNameText->Nome completo para a pasta movida
Resultados4D. Folder<-Pasta movida

|

Descrição

A função .moveTo( ) move ou renomeia o objecto Folder (pasta de origem) para o objecto especificado destinationFolder.

A destinationFolder deve existir em disco, senão um erro é gerado.

Por padrão, a pasta mantém o seu nome quando movida. Se quiser renomear a pasta movida, 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 Folder movido.

Exemplo

Quer mover-se e renomear uma pasta:

 var $tomove; $moved : Object
$docs:=Folder(fk documents folder)
$tomove:=$docs.folder("Pictures")
$tomove2:=$tomove.moveTo($docs.folder("Archives");"Pic_Archives")

.name

Histórico
ReleaseMudanças
17 R5Adicionado

.name : Text

Descrição

A propriedade .name devolve o nome da pasta, sem extensão (se houver).

Essa propriedade é apenas leitura.

.original

Histórico
ReleaseMudanças
17 R5Adicionado

.original : 4D. Folder

Descrição

A propriedade .original devolve o mesmo objecto Folder que a pasta.

Essa propriedade é apenas leitura.

Esta propriedade está disponible nas pastas para permitir que o código genérico processe pastas ou arquivos.

.parent

Histórico
ReleaseMudanças
17 R5Adicionado

.parent : 4D. Folder

Descrição

A propriedade .parent devolve o objecto Folder pai da pasta. .

Se a pasta não tiver um pai (raiz), é devolvido o valor nulo.

Essa propriedade é apenas leitura.

.path

Histórico
ReleaseMudanças
17 R5Adicionado

.path : Text

Descrição

A propriedade .path devolve o caminho POSIX da pasta. .

Essa propriedade é apenas leitura.

.platformPath

Histórico
ReleaseMudanças
17 R5Adicionado

.platformPath : Text

Descrição

A propriedade .platformPath devolve o caminho da pasta expresso com a sintaxe da plataforma actual.

Essa propriedade é apenas leitura.

.rename()

Histórico
ReleaseMudanças
17 R5Adicionado

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

ParâmetroTipoDescrição
newNameText->Novo nome completo para a pasta
Resultados4D. Folder<-Renomeado arquivo

|

Descrição

A função .rename() renomeia a pasta com o nome que passou em newName e devolve o objecto renomeado Folder.

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.

Objeto devolvido

O objecto Folder renomeado.

Exemplo

 var $toRename : 4D. Folder
$toRename:=Folder("/RESOURCES/Pictures").rename("Images")