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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
Folder ( path : Text { ; pathType : Integer }{ ; * } ) : 4D.Folder
Folder ( folderConstant : Integer { ; * } ) : 4D.Folder
Parâmetro | Tipo | Descrição | |
---|---|---|---|
path | Text | -> | Folder path |
folderConstant | Integer | -> | Constante Pasta 4D |
pathType | Integer | -> | fk posix path (por defeito) ou fk platform path |
* | -> | * para devolver a pasta da base de dados do anfitrião | |
Resultados | 4D. 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âmetros | Valor | Comentário |
---|---|---|
fk platform path | 1 | Caminho expresso com uma sintaxe específica da plataforma (obrigatória em caso de caminho de plataforma) |
fk posix path | 0 | Caminho expresso com a sintaxe POSIX (por padrão) |
Folder ( folderConstant { ; * } )
No parâmetro folderConstant , passe uma pasta 4D incorporada ou de sistema, utilizando uma das seguintes constantes:
Parâmetros | Valor | Comentário |
---|---|---|
fk applications folder | 116 | |
fk data folder | 9 | Sistema de ficheiros associado: "/DATA" |
fk database folder | 4 | Sistema de arquivos associado: "/PACKAGE" |
fk desktop folder | 115 | |
fk documents folder | 117 | Pasta de documentos do utilizador |
fk licenses folder | 1 | Pasta contendo os arquivos de licença 4D da máquina |
fk logs folder | 7 | Sistema de arquivos associado: "/LOGS" |
fk mobileApps folder | 10 | |
fk remote database folder | 3 | Pasta de base de dados 4D criada em cada máquina 4D remota |
fk resources folder | 6 | Sistema de arquivos associado: "/DATA" |
fk system folder | 100 | |
fk user preferences folder | 0 | 4D folder that stores user preference files within the \<userName> directory. |
fk web root folder | 8 | Pasta 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
Release | Mudanças |
---|---|
18 R6 | Adicionado |
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 of4D. Folder.new()
.
.copyTo()
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.copyTo( destinationFolder : 4D. Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D. Folder
Parâmetro | Tipo | Descrição | |
---|---|---|---|
destinationFolder | 4D. Folder | -> | Pasta de destino |
newName | Text | -> | Nome para a copia |
overwrite | Integer | -> | fk overwrite para substituir os elementos existentes |
Resultados | 4D. 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âmetros | Valor | Comentário |
---|---|---|
fk overwrite | 4 | Sobrescrever 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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.create() : Boolean
Parâmetro | Tipo | Descrição | |
---|---|---|---|
Resultados | Parâ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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.createAlias( destinationFolder : 4D. Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D. File
Parâmetro | Tipo | Descrição | |
---|---|---|---|
destinationFolder | 4D. Folder | -> | Pasta de destino para o pseudónimo ou atalho |
aliasName | Text | -> | Nome do pseudónimo ou atalho |
aliasType | Integer | -> | Tipo de ligação do pseudónimo |
Resultados | 4D. File | <- | 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âmetros | Valor | Comentário |
---|---|---|
fk alias link | 0 | Alias link (padrão) |
fk symbolic link | 1 | Link simbólico (só em macOS) |
No Windows, é sempre criado um atalho (arquivo .lnk) (o parâmetro aliasType é ignorado).
Objeto devolvido
A 4D. File
object with the isAlias
property set to true.
Exemplo
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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.delete( { option : Integer } )
Parâmetro | Tipo | Descrição | |
---|---|---|---|
option | Integer | -> | 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âmetros | Valor | Comentário |
---|---|---|
Delete only if empty | 0 | Elimina a pasta apenas quando está vazia |
Delete with contents | 1 | Apaga 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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.file( path : Text ) : 4D. File
Parâmetro | Tipo | Descrição | |
---|---|---|---|
path | Text | -> | Rota POSIX relativa |
Resultados | 4D. 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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.files( { options : Integer } ) : Collection
Parâmetro | Tipo | Descrição | |
---|---|---|---|
options | Integer | -> | Opções da lista de arquivos |
Resultados | Collection | <- | 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âmetros | Valor | Comentário |
---|---|---|
fk recursive | 1 | A coleção contém arquivos da pasta especificada e suas subpastas |
fk ignore invisible | 8 | Arquivos 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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.folder( path : Text ) : 4D. Folder
Parâmetro | Tipo | Descrição | |
---|---|---|---|
path | Text | -> | Rota POSIX relativa |
Resultados | 4D. 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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.folders( { options : Integer } ) : Collection
Parâmetro | Tipo | Descrição | |
---|---|---|---|
options | Integer | -> | Opções da lista de pasta |
Resultados | Collection | <- | 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âmetros | Valor | Comentário |
---|---|---|
fk recursive | 1 | A coleção contém pastas da pasta especificada e suas subpastas |
fk ignore invisible | 8 | Pastas 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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.getIcon( { size : Integer } ) : Picture
Parâmetro | Tipo | Descrição | |
---|---|---|---|
size | Integer | -> | Longitude de lado da imagem devolvida (píxeles) |
Resultados | Imagem | <- | Ícone |
|
Descrição
A função .getIcon()
devolve o ícone 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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.isAlias : Boolean
Descrição
A propriedade .isAlias
devolve sempre false para um objecto Folder
.
Essa propriedade é apenas leitura.
.isFile
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.isFile : Boolean
Descrição
A propriedade .isFile
devolve sempre false para uma pasta.
Essa propriedade é apenas leitura.
.isFolder
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.isFolder : Boolean
Descrição
A propriedade .isFolder
devolve sempretrue para uma pasta.
Essa propriedade é apenas leitura.
.isPackage
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.modificationDate : Date
Descrição
A propriedade .modificationDate
devolve a data da última modificação da pasta.
Essa propriedade é apenas leitura.
.modificationTime
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.moveTo( destinationFolder : 4D. Folder { ; newName : Text } ) : 4D. Folder
Parâmetro | Tipo | Descrição | |
---|---|---|---|
destinationFolder | 4D. Folder | -> | Pasta de destino |
newName | Text | -> | Nome completo para a pasta movida |
Resultados | 4D. 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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.name : Text
Descrição
A propriedade .name
devolve o nome da pasta, sem extensão (se houver).
Essa propriedade é apenas leitura.
.original
Histórico
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.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
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.path : Text