4D está a facilitar a vida do seu programador com dois novos comandos para gerir sem esforço caminhos de ficheiros ou pastas. Poupe tempo valioso com os comandos Path to object que, numa única linha de código, extrai a extensão, o nome do ficheiro ou a pasta principal. Depois é possível modificar e recombinar os diferentes atributos do objecto para compor um novo caminho com Object to path.
Extracção de elementos do caminho
Com Path to object, é possível dividir facilmente caminhos em várias partes, devolvidos como atributos de objectos:
- Pasta dos pais
- Nome
- Extensão
- É ou não uma pasta
// Split a path written with system delimiter
$pathSys:=Pathto object("C:\4D.jpg")
//$pathSys.parentFolder="C:\4DD=resourcesimages")
//$pathSys.name="4D"
//$pathSys.extension=".jpg"
//$pathSys.isFolder=False
Note-se que o comando suporta tanto os caminhos do sistema como os do POSIX. Também pode dizer se passou uma pasta ou um ficheiro com base no último caracter do parâmetro de entrada do caminho.
Caminho de construção
Tem agora uma forma simples de modificar os elementos de um caminho e reconstruí-lo com o Object to path comando. Fácil!
// Duplicar um documento na sua própria pasta:
$path:="c:\tmp\tmp\file.txt"
$o:=Pathto object($path)
// Renomear documento
$o.name:=$o.name+"_copy"
// Fazer uma cópia do documento
COPY DOCUMENT($path;object to path($o))
Também pode utilizar o objecto devolvido em qualquer comando 4D que solicite um caminho:
$o:=Caminhopara o objecto("C:\4D:\4D.jpg")
$doc:=Seleccionardocumento($o.nome+$o.extensão;$o.extensão; "Salvar como";Entrada do nome do ficheiro)
Os comandos Path to object e Object to path devem agora ser utilizados para substituir as chamadas para os comandos depreciados, _o_Document type e _o_SET DOCUMENT TYPE.
Melhoria do desempenho
Sempre bom de mencionar, 4D v16 R6 aproveita ao máximo os modernos sistemas APIs em macOS para manipulação de ficheiros e pastas. Executámos testes de referência executando várias operações, tais como a listagem do conteúdo das pastas, verificação das propriedades dos ficheiros, leitura ou cópia de pequenos ficheiros, em pastas com milhares de ficheiros.
Os resultados mostram que o tempo de execução é 6 vezes mais rápido em geral e até 30 vezes mais rápido ao listar os ficheiros presentes num determinado local.