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álidoFolder 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
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
Folderem vez de4D.Folder.new().
.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.
Se necessário, a função cria a hierarquia de pastas conforme descrito nas propriedades platformPath ou path. 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.
Passar o nome do alias 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
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")
.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 Last errors` 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)
.moveTo()
História
| 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 objeto Folder (pasta de origem) para a destinationFolder especificada.
A destinationFolder deve existir em disco, senão um erro é gerado.
Por padrão, a pasta mantém o seu nome quando movida. Por padrão, a pasta mantém o seu nome quando movida. 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 objeto 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")
.rename()
História
| Release | Mudanças | 
|---|---|
| 17 R5 | Adicionado | 
.rename*( newName : Text ) : 4D.Folder
| Parâmetro | Tipo | Descrição | |
|---|---|---|---|
| newName | Text | -> | Novo nome completo para a pasta | 
| Resultados | 4D. Folder | <- | Renomeado arquivo | 
Descrição
A função .rename() renomeia a pasta com o nome que você passou em newName e retorna o objeto Folder renomeado.
O parâmetro newName deve estar em conformidade com as regras de nome (por exemplo, ele não deve conter caracteres como ":", "/", etc.), caso contrário um erro é retornado. Se já existir um ficheiro com o mesmo nome, é devolvido um erro.
Objeto devolvido
O objeto Folder renomeado.
Exemplo
 var $toRename : 4D. Folder
 $toRename:=Folder("/RESOURCES/Pictures").rename("Images")