Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v19.8
Rotas de objetos arquivo e pasta

Rotas de objetos arquivo e pasta  


 

Os comandos, métodos ye propriedades deste tema lhe permitem manejar arquivos e pastas como objetos. Isto faz com que a gestão de pastas e arquivos seja poderosa e flexível. Por exemplo, para criar um novo arquivo na pasta Documents de usuário atual, pode escrever:

 $new:=Folder(fk documents folder).file("Archives/John4D.prefs").create()

Além disso, os objetos arquivo e pasta são compatíveis com fileSystems, que oferecem uma rota contextual às pastas principais da aplicação.

4D aceita várias rotas de "filesystem" que designam as pastas 4D específicas com localização variável em macOS e Windows. As rotas dos sistemas de arquivos são úteis por duas razõs principais:

  • Independência: pode mover sua solução de um lugar a outro, sem importar o sistema operativo, sem ter que se preocupar pelas rotas,
  • Segurança: nenhum código pode acessar aos elementos localizados sobre a raíz de filesystem no disco (sandboxing).

Se admitem as seguintes rotas de acesso ao filesystem: 

filesystemDesigna
"/RESOURCES"Pasta de recursos do banco de dados atual
"/DATA"Pasta de dados atual
"/PACKAGE"Pasta do banco de dados (com ou sem a extensão 4dbase)
"/LOGS"Pasta de histórico do banco de dados
[#/table]

Nota: em alguns casos, a pasta do banco de dados atual pode ser resolvido como "/SOURCES" e a pasta do banco de dados pode ser resolvido como "/PROJECT".  Não muda o objetivo de filesystem.

A sintaxe POSIX é compatível com todas as plataformas. Se recomenda a sintaxe POSIX já que é a mais flexível. Se utilizar de forma pre-determinada (devolvido pelas propriedades file.path e folder.path).

Com esta sintaxe:

  • as pastas estão separadas por "/"
  • os nomes de rota absolutos começam por "/"
  • para subir uma pasta em uma rota relativa, utilize "../" na frente da rota (por segurança, não pode subir a rota de filesystem).

Na sintaxe POSIX, deve utilizar as rotas "filesystem" com os comandos File e Folder por exemplo:

 $pathFile:=File("/DATA/Archives/file 2.txt")
 $pathFolder:=Folder("/RESOURCES/Pictures")

A sintaxe específica da plataforma depende de sistema operativo no qual se executa o comando. Lembre que ao criar um objeto arquivo ou pasta com esta sintaxe, deve declará-lo utilizando a constante fk platform path como parâmetro.

Windows
Os modelos abaixo são compatíveis:

  • os separadores de pastas: "\"
  • o texto contém ':' e '\' como segundo e terceiro caracter,
  • o texto começa por "\\".

Exemplos com Folder :

 $myFolder:=Folder("C:\\Monday";fk platform path).create()
 $myFolder:=Folder("\\\\svr-internal\\tempo";fk platform path).create()

Nota: ver o parágrafo Inserir rotas de acesso em Windows e sequências de escape para obter informação sobre o duplo "\\'.

macOS
Se admitem os seguientes modelos (sintaxis HFS +):

  • os separadores de pastas: ":"
  • a rota não deve começar por: ":"

Exemplos com Folder :

 $myFolder:=Folder("macintosh hd:";fk platform path).create()
 $myFolder:=Folder("Monday:Tuesday";fk platform path).create() // um volume deve ser chamado segunda-feira

Criadores de arquivos e pastas
Os comandos File e Folder apenas aceitam rotas absolutas. As rotas relativas não sã compatíveis e devolverão erros. Por exemplo, o código abaixo não está permitido:

  //ERROR
 $myFolder:=Folder("myFolder").create() //rota relativa ao criador


Se quiser manejar arquivos ou pastas em vários locais (pasta do banco de dados, pastas sistema, etc.), pode utilizar filesystems (ver acima).  Por exemplo, pode escrever:

 $myFolder:=Folder("/PACKAGE";"myFolder").create() //pasta criada ao nível .4db
 $myFile:=File("/DATA/Prefs/tempo.txt").create() //arquivo criado na pasta de dados

Métodos pastas .file() e .folder()
Os métodos dos objetos file e folder tais como folder.file( ) e folder.folder( ) esperam nomes de rotas POSIX relativas. Por exemplo:

  //para fazer referência a uma pasta "Imagem" dentro da pasta de documentos de usuário
 $userImages:=Folder(fk documents folder).folder("Pictures")
  //para criar uma pasta no escritório
 $myFolder2:=Folder(fk desktop folder).folder("myFolder").create()

As rotas de acesso absolutas não são compatíveis e devolverão erros.

A flexibilidade dos comandos e métodos dste tema, combinada com a notação de objetos, lhe oferece várias possibilidades para manejar arquivos e pastas, como nos exemplos abaixo:

 $f:=Folder(fk desktop folder).folder("archive/jan2019")
 
 $f2:=Folder("/DATA/archive/jan2019").file("total.txt")
 
 $f3:=Folder("/DATA/archive/jan2019")
 
 $f4:=File("/DATA/info.txt")
 
 $f5:=File("c:\\archives\\local\\jan2019.txt";fk platform path)
 
 $f6:=File(fk backup log file)

 
PROPRIEDADES 

Produto: 4D
Tema: Arquivo e Pasta

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v19)
Manual de linguagem 4D ( 4D v19.1)
Manual de linguagem 4D ( 4D v19.4)
Manual de linguagem 4D ( 4D v19.5)
Manual de linguagem 4D ( 4D v19.6)
Manual de linguagem 4D ( 4D v19.7)
Manual de linguagem 4D ( 4D v19.8)