Folder
Os objetos Folder
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 ’Folderpara criar uma pasta, é criado um objeto válido
Folder mas nada é realmente armazenado no disco até chamar a função [
folder.create()`](#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
Os objetos Folder
suportam vários pathnames, incluindo a sintaxe filesystems
ou posix
. Os nomes de caminho compatíveis são detalhados na página Rotas de acesso.
Objecto Folder
.copyTo( destinationFolder : 4D.Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D.Folder copies the Folder object into the specified destinationFolder |
.create() : Boolean cria uma pasta no disco de acordo com as propriedades do objeto Folder |
.createAlias( destinationFolder : 4D.Folder ; aliasName : Text { ; aliasType : Integer } ) : 4D.File cria um alias (macOS) ou um atalho (Windows) |
.creationDate : Date a data de criação da pasta |
.creationTime : Time o horário de criação da pasta |
.delete( { option : Integer } ) exclui a pasta |
.exists : Boolean true se a pasta existe no disco |
.extension : Text retorna a extensão do nome da pasta (se houver) |
.file( path : Text ) : 4D.File a File object inside the Folder object and returns its reference |
.files( { options : Integer } ) : Collection a collection of File objects contained in the folder |
.folder( path : Text ) : 4D.Folder creates a Folder object inside the parent Folder object and returns its reference |
.folders( { options : Integer } ) : Collection returns a collection of Folder objects contained in the parent folder |
.fullName : Text retorna o nome completo da pasta, incluindo sua extensão (se houver) |
.getIcon( { size : Integer } ) : Picture returns the icon of the folder |
.hidden : Boolean true if the folder is set as "hidden" at the system level |
.eof : Boolean True is the offset has reached the end of the file, and False otherwise |
.isFile : Boolean sempre false para uma pasta |
.isFolder : Boolean sempre true para uma pasta |
.isPackage : Boolean true if the folder is a package on macOS (and exists on disk) |
.modificationDate : Date the date of the folder's last modification |
.modificationTime : Time the time of the folder's last modification |
.name : Text the name of the folder, without extension (if any) |
.original : 4D.Folder the same Folder object as the folder |
.parent : 4D.Folder the parent folder object of the folder |
.path : Text the POSIX path of the folder |
.platformPath : Text the path of the folder expressed with the current platform syntax |
.moveTo( destinationFolder : 4D.Folder { ; newName : Text } ) : 4D.Folder move ou renomeia o objeto Folder (pasta de origem) para a destinationFolder especificada |
.rename( newName : Text ) : 4D.Folder renomeia a pasta com o nome que você passou em newName e retorna o objeto Folder renomeado |
Folder
História
Release | Mudanças |
---|---|
19 R8 | Suporte de fk home folder |
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 (padrão) 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 retorna um novo objeto do tipo 4D.Folder
. O comando aceita duas sintaxes:
Folder ( path { ; pathType } { ; * } )
No parâmetro path, passe uma string de rotas de pasta. Você pode usar uma cadeia de caracteres 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. If you work with platform pathnames (Windows or macOS), you must declare it using the pathType parameter. 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 home folder | 118 | Pasta atual do usuário (normalmente /Users/<username>/ ) |
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 mesclados, o local das pastas incorporadas é modificado se a chave
ShareLocalResourcesOnWindowsClient
BuildApp key for usada.
4D. Folder.new()
História
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 retorna um novo objeto do tipo 4D.Folder
. É idêntico ao comando Folder
(atalho).
Recomenda-se usar o comando de atalho
Folder
em vez de4D.Folder.new()
.
.copyTo()
História
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
The .copyTo()
function copies the Folder
object into the specified destinationFolder.
The destinationFolder must exist on disk, otherwise an error is generated.
Como padrão, a pasta é copiada com o nome da pasta original. If you want to rename the copy, pass the new name in the newName parameter. 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.
If a folder with the same name already exists in the destinationFolder, by default 4D generates an error. You can pass the fk overwrite
constant in the overwrite parameter to ignore and overwrite the existing file
Parâmetros | Valor | Comentário |
---|---|---|
fk overwrite | 4 | Sobrescrever os elementos existentes, se houver |
Valor retornado
O objeto Folder
copiado.
Exemplo
You want to copy a Pictures folder from the user's Document folder to the Database folder:
var $userImages; $copiedImages : 4D.Folder
$userImages:=Folder(fk documents folder).folder("Pictures")
$copiedImages:=$userImages.copyTo(Folder(fk database folder);fk overwrite)
.create()
História
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.create() : Boolean
Parâmetro | Tipo | Descrição | |
---|---|---|---|
Resultados | Parâmetros | <- | True se a pasta foi criada com sucesso, false caso contrário |
Descrição
A função .create()
cria uma pasta no disco de acordo com as propriedades do objeto Folder
.
If necessary, the function creates the folder hierachy as described in the platformPath or path properties. Se a pasta já existir no disco, a função não faz nada (não é atirado nenhum erro) e retorna falso.
Valor retornado
- True se a pasta for criada com sucesso;
- False 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
.createAlias()
História
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 alias (macOS) ou um atalho (Windows) para a pasta com o nome aliasName especificado na pasta designada pelo objeto destinationFolder.
Pass the name of the alias or shortcut to create in the aliasName parameter.
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) |
On Windows, a shortcut (.lnk file) is always created (the aliasType parameter is ignored).
Objeto devolvido
Um objeto 4D.File
com a propriedade isAlias
definida como 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ória
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.creationDate : Date
Descrição
A propriedade .creationDate
retorna a data de criação da pasta.
Essa propriedade é somente leitura.
.creationTime
História
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.creationTime : Time
Descrição
A propriedade .creationTime
retorna o horário de criação da pasta (expresso como um número de segundos a partir de 00:00).
Essa propriedade é somente leitura.
.delete()
História
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()
exclui 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 Delete only if empty
for passado ou se você 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 Delete with contents
é passado:
- 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 usuário atual 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ória
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.exists : Boolean
Descrição
A propriedade .exists
retorna true se a pasta existe no disco e false caso contrário.
Essa propriedade é somente leitura.
.extension
História
Release | Mudanças |
---|---|
17 R5 | Adicionado |
.extension : Text
Descrição
A propriedade .extension
retorna 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 é somente leitura.
.file()
História
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 caminho inválido) |
Descrição
The .file()
function creates a File
object inside the Folder
object and returns its reference.
In path, pass a relative POSIX path to designate the file to return. A rota se avaliará a partir da pasta pai como raíz.
Valor retornado
Um objeto File
ou null se path for inválido.
Exemplo
var $myPDF : 4D. File
$myPDF:=Folder(fk documents folder).file("Pictures/info.pdf")