Saltar para o conteúdo principal
Versão: 20 R6 BETA

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
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
ReleaseMudanças
19 R8Suporte de fk home folder
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 (padrão) 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 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â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 home folder118Pasta atual do usuário (normalmente /Users/<username>/)
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 mesclados, o local das pastas incorporadas é modificado se a chave ShareLocalResourcesOnWindowsClient BuildApp key for usada.

4D. Folder.new()

História
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 retorna um novo objeto do tipo 4D.Folder. É idêntico ao comando Folder (atalho).

Recomenda-se usar o comando de atalho Folder em vez de 4D.Folder.new().

.copyTo()

História
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

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âmetrosValorComentário
fk overwrite4Sobrescrever 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
ReleaseMudanças
17 R5Adicionado

.create() : Boolean

ParâmetroTipoDescrição
ResultadosParâ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
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 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âmetrosValorComentário
fk alias link0Alias link (padrão)
fk symbolic link1Link 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
ReleaseMudanças
17 R5Adicionado

.creationDate : Date

Descrição

A propriedade .creationDate retorna a data de criação da pasta.

Essa propriedade é somente leitura.

.creationTime

História
ReleaseMudanças
17 R5Adicionado

.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
ReleaseMudanças
17 R5Adicionado

.delete( { option : Integer } )

ParâmetroTipoDescrição
optionInteger->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â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 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
ReleaseMudanças
17 R5Adicionado

.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
ReleaseMudanças
17 R5Adicionado

.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
ReleaseMudanças
17 R5Adicionado

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

ParâmetroTipoDescrição
pathText->Rota POSIX relativa
Resultados4D. 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")

.files()

História
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

The .files() function returns a collection of File objects contained in the folder.

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

By default, if you omit the options parameter, only the files at the first level of the folder are returned in the collection, as well as invisible files or folders. You can modify this by passing, in the options parameter, one or more of the following constants:

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

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
ReleaseMudanças
17 R5Adicionado

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

ParâmetroTipoDescrição
pathText->Rota POSIX relativa
Resultados4D. Folder<-Objeto pasta criado (null se path for inválida*)

Descrição

The .folder() function creates a Folder object inside the parent Folder object and returns its reference.

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
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

The .folders() function returns a collection of Folder objects contained in the parent folder.

By default, if you omit the options parameter, only the folders at the first level of the folder are returned in the collection. You can modify this by passing, in the options parameter, one or more of the following constants:

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ória
ReleaseMudanças
17 R5Adicionado

.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
ReleaseMudanças
17 R5Adicionado

.getIcon( { size : Integer } ) : Picture

ParâmetroTipoDescrição
sizeInteger->Longitude de lado da imagem devolvida (píxeles)
ResultadosImagem<-Ícone

Descrição

The .getIcon() function returns the icon of the folder.

The optional size parameter specifies the dimensions in pixels of the returned icon. 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
ReleaseMudanças
17 R5Adicionado

.hidden : Boolean

Descrição

The .hidden property returns true if the folder is set as "hidden" at the system level, and false otherwise.

Essa propriedade é somente leitura.

.isAlias

História
ReleaseMudanças
17 R5Adicionado

.isAlias : Boolean

Descrição

A propriedade .isAlias retorna sempre false para um objeto Folder.

Essa propriedade é somente leitura.

.isFile

História
ReleaseMudanças
17 R5Adicionado

.isFile : Boolean

Descrição

A propriedade .isFile retorna sempre false para uma pasta.

Essa propriedade é somente leitura.

.isFolder

História
ReleaseMudanças
17 R5Adicionado

.isFolder : Boolean

Descrição

A propriedade .isFolder retorna sempre true para uma pasta.

Essa propriedade é somente leitura.

.isPackage

História
ReleaseMudanças
17 R5Adicionado

.isPackage : Boolean

Descrição

The .isPackage property returns true if the folder is a package on macOS (and exists on disk). .

Em Windows, .isPackage sempre devolve false.

Essa propriedade é somente leitura.

.modificationDate

História
ReleaseMudanças
17 R5Adicionado

.modificationDate : Date

Descrição

The .modificationDate property returns the date of the folder's last modification.

Essa propriedade é somente leitura.

.modificationTime

História
ReleaseMudanças
17 R5Adicionado

.modificationTime : Time

Descrição

The .modificationTime property returns the time of the folder's last modification (expressed as a number of seconds beginning at 00:00).

Essa propriedade é somente leitura.

.moveTo()

História
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 objeto Folder (pasta de origem) para a destinationFolder especificada.

The destinationFolder must exist on disk, otherwise an error is generated.

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 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
ReleaseMudanças
17 R5Adicionado

.name : Text

Descrição

The .name property returns the name of the folder, without extension (if any).

Essa propriedade é somente leitura.

.original

História
ReleaseMudanças
17 R5Adicionado

.original : 4D.Folder

Descrição

The .original property returns the same Folder object as the folder.

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
ReleaseMudanças
17 R5Adicionado

.parent : 4D.Folder

Descrição

The .parent property returns the parent folder object of the folder. .

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

Essa propriedade é somente leitura.

.path

História
ReleaseMudanças
17 R5Adicionado

.path : Text

Descrição

The .path property returns the POSIX path of the folder. .

Essa propriedade é somente leitura.

.platformPath

História
ReleaseMudanças
17 R5Adicionado

.platformPath : Text

Descrição

The .platformPath property returns the path of the folder expressed with the current platform syntax.

Essa propriedade é somente leitura.

.rename()

História
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 você passou em newName e retorna o objeto Folder renomeado.

The newName parameter must comply with naming rules (e.g., it must not contain characters such as ":", "/", etc.), otherwise an error is returned. 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")