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
| .copyTo( destinationFolder : 4D.Folder { ; newName : Text } { ; overwrite : Integer } ) : 4D.Folder copia o objeto Folder para a destinationFolder especificada |
| .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 um objeto File dentro do objeto Folder e retorna sua referência |
| .files( { options : Integer } ) : Collection uma coleção de objetos File contidos na pasta |
| .folder( path : Text ) : 4D.Folder cria um objeto Folder dentro do objeto Folder pai e retorna sua referência |
| .folders( { options : Integer } ) : Collection retorna uma coleção de objetos Folder contidos na pasta principal |
| .fullName : Text retorna o nome completo da pasta, incluindo sua extensão (se houver) |
| .getIcon( { size : Integer } ) : Picture retorna o ícone da pasta |
| .hidden : Boolean true se o arquivo estiver definido como "hidden" no nível do sistema |
| .eof : Boolean True é o offset chegou ao fim do arquivo, e False caso contrário |
| .isFile : Boolean sempre false para uma pasta |
| .isFolder : Boolean sempre true para uma pasta |
| .isPackage : Boolean true se a pasta é um pacote no macOS (e existe no 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 objeto Pasta da pasta |
| .parent : 4D.Folder o objeto pasta pai da pasta |
| .path : Text o caminho POSIX da pasta |
| .platformPath : Text o caminho da pasta expresso com a sintaxe da plataforma atual |
| .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 |
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().
.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
A função .copyTo() copia o objeto Folder para a destinationFolder especificada.
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 Imagens 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ó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")
.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 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)
.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
A função .file() cria um objeto File dentro do objeto Folder e retorna 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 for inválido.
Exemplo
var $myPDF : 4D. File
$myPDF:=Folder(fk documents folder).file("Pictures/info.pdf")
.files()
História
| 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() retorna uma coleção de objetos 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
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ória
| 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 path for inválida*) |
Descrição
A função .folder() cria um objeto Folder dentro do objeto Folder pai e retorna 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 for inválido.
Exemplo
var $mypicts : 4D. Folder
$mypicts:=Folder(fk documents folder).folder("Pictures")
.folders()
História
| 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() retorna uma coleção de objetos Folder contidos na pasta principal.
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ória
| Release | Mudanças |
|---|---|
| 17 R5 | Adicionado |
.fullName : Text
Descrição
A propriedade .fullName retorna o nome completo da pasta, incluindo sua extensão (se houver).
Essa propriedade é somente leitura.
.getIcon()
História
| 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() retorna 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
Imagem do ícone da pasta.
.hidden
História
| Release | Mudanças |
|---|---|
| 17 R5 | Adicionado |
.hidden : Boolean
Descrição
A propriedade .hidden retorna true se o arquivo estiver definido como "hidden" no nível do sistema, e false caso contrário.
Essa propriedade é somente leitura.
.isAlias
História
| Release | Mudanças |
|---|---|
| 17 R5 | Adicionado |
.isAlias : Boolean
Descrição
A propriedade .isAlias retorna sempre false para um objeto Folder.
Essa propriedade é somente leitura.
.isFile
História
| Release | Mudanças |
|---|---|
| 17 R5 | Adicionado |
.isFile : Boolean
Descrição
A propriedade .isFile retorna sempre false para uma pasta.
Essa propriedade é somente leitura.
.isFolder
História
| Release | Mudanças |
|---|---|
| 17 R5 | Adicionado |
.isFolder : Boolean
Descrição
A propriedade .isFolder retorna sempre true para uma pasta.
Essa propriedade é somente leitura.
.isPackage
História
| Release | Mudanças |
|---|---|
| 17 R5 | Adicionado |
.isPackage : Boolean
Descrição
A propriedade .isPackage retorna true se a pasta é um pacote no macOS (e existe no disco). .
Em Windows, .isPackage sempre devolve false.
Essa propriedade é somente leitura.
.modificationDate
História
| Release | Mudanças |
|---|---|
| 17 R5 | Adicionado |
.modificationDate : Date
Descrição
A propriedade .modificationDate retorna a data da última modificação da pasta.
Essa propriedade é somente leitura.
.modificationTime
História
| Release | Mudanças |
|---|---|
| 17 R5 | Adicionado |
.modificationTime : Time
Descrição
A propriedade .modificationTime retorna a hora da última modificação da pasta (expressa como um número de segundos a partir de 00:00).
Essa propriedade é somente leitura.
.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")
.name
História
| Release | Mudanças |
|---|---|
| 17 R5 | Adicionado |
.name : Text
Descrição
A propriedade .name retorna o nome da pasta, sem extensão (se houver).
Essa propriedade é somente leitura.
.original
História
| Release | Mudanças |
|---|---|
| 17 R5 | Adicionado |
.original : 4D.Folder
Descrição
A propriedade .original retorna o mesmo objeto Pasta da pasta.
Essa propriedade é somente leitura.
Esta propriedade está disponible nas pastas para permitir que o código genérico processe pastas ou arquivos.
.parent
História
| Release | Mudanças |
|---|---|
| 17 R5 | Adicionado |
.parent : 4D.Folder
Descrição
A propriedade .parent retorna o objeto pasta pai da pasta. .
Se a pasta não tiver um pai (raiz), é devolvido o valor nulo.
Essa propriedade é somente leitura.
.path
História
| Release | Mudanças |
|---|---|
| 17 R5 | Adicionado |
.path : Text
Descrição
A propriedade .path retorna o caminho POSIX da pasta. .
Essa propriedade é somente leitura.
.platformPath
História
| Release | Mudanças |
|---|---|
| 17 R5 | Adicionado |
.platformPath : Text
Descrição
A propriedade .platformPath retorna o caminho da pasta expresso com a sintaxe da plataforma atual.
Essa propriedade é somente leitura.
.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")