Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com

Inicio

 
4D v19.8
Rutas de objetos archivo y carpeta

Rutas de objetos archivo y carpeta  


 

Los comandos, métodos y propiedades de este tema le permiten manejar archivos y carpetas como objetos. Esto hace que la gestión de carpetas y archivos sea poderosa y flexible. Por ejemplo, para crear un nuevo archivo en la carpeta Documents del usuario actual, puede escribir:

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

Además, los objetos archivo y carpeta soportan fileSystems, que ofrecen una ruta contextual a las principales carpetas de la aplicación.

4D acepta varias rutas de "filesystem" que designan las carpetas 4D específicas con ubicación variable en macOS y Windows. Las rutas de los sistemas de archivos son útiles por dos razones principales:

  • Independencia: puede mover su solución de un lugar a otro, sin importar el sistema operativo, sin tener que preocuparse por las rutas,
  • Seguridad: ningún código puede acceder a los elementos ubicados sobre la raíz del filesystem en el disco (sandboxing).

Se admiten las siguientes rutas de acceso al filesystem: 

filesystemDesigna
"/RESOURCES"Carpeta de recursos de la base actual
"/DATA"Carpeta de datos actual
"/PACKAGE"Carpeta de la base (con o sin la extensión 4dbase)
"/LOGS"Carpeta de historial de la base

Nota: en algunos casos, la carpeta resources de la base actual se puede resolver como "/SOURCES" y la carpeta de la base se puede resolver como "/PROJECT".  No cambia el objetivo del filesystem.

La sintaxis POSIX es soportada en todas las plataformas. Se recomienda la sintaxis POSIX ya que es la más flexible. Se utiliza de forma predeterminada (devuelto por las propiedades file.path y folder.path).

Con esta sintaxis:

  • las carpetas están separadas por "/"
  • los nombres de ruta absolutos comienzan por "/"
  • para subir una carpeta en una ruta relativa, utilice "../" delante de la ruta (por seguridad, no puede subir la ruta del filesystem).

En la sintaxis POSIX, generalmente usted utiliza las rutas "filesystem" con los comandos File y Folder por ejemplo:

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

La sintaxis específica de la plataforma depende del sistema operativo en el que se ejecuta el comando. Tenga en cuenta que al crear un objeto archivo o carpeta con esta sintaxis, debe declararlo utilizando la constante fk platform path como parámetro.

Windows
Los modelos siguientes son compatibles:

  • los separadores de carpetas: "\"
  • el texto contiene ':' y '\' como segundo y tercer caracter,
  • el texto comienza por "\\".

Ejemplos con Folder :

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

Nota: ver el párrafo Entrada de rutas de acceso Windows y secuencias de escape para obtener información sobre el doble "\\'.

macOS
Se admiten los siguientes modelos (sintaxis HFS +):

  • Los separadores de carpetas: ":"
  • la ruta no debe comenzar por: ":"

Ejemplos con Folder :

 $myFolder:=Folder("macintosh hd:";fk platform path).create()
 $myFolder:=Folder("Monday:Tuesday";fk platform path).create() //se debe llamar a un volumen el lunes

Creadores de archivos y carpetas
Los comandos File y Folder solo aceptan rutas çabsolutas. Las rutas relativas no son compatibles y devolverán errores. Por ejemplo, el siguiente código no está permitido:

  //ERROR
 $myFolder:=Folder("myFolder").create() //ruta relativa al creador


Si desea manejar archivos o carpetas en varias ubicaciones (carpeta de la base de datos, carpetas sistema, etc.), puede utilizar filesystems (ver arriba).  Por ejemplo, puede escribir:

 $myFolder:=Folder("/PACKAGE";"myFolder").create() //carpeta creada al nivel .4db
 $myFile:=File("/DATA/Prefs/tempo.txt").create() //archivo creado en la carpeta de datos

 

Métodos carpetas .file() y .folder()
Los métodos de los objetos file y folder tales como folder.file( ) y folder.folder( ) esperan nombres de rutas POSIX relativas. Por ejemplo:

  //para hacer referencia a una carpeta "Imagen" dentro de la carpeta de documentos del usuario
 $userImages:=Folder(fk documents folder).folder("Pictures")
  //para crear una carpeta en el escritorio
 $myFolder2:=Folder(fk desktop folder).folder("myFolder").create()

Las rutas de acceso absolutas no son compatibles y devolverán errores.

La flexibilidad de los comandos y métodos de este tema, combinada con la notación de objetos, le ofrece varias posibilidades para manejar archivos y carpetas, como en los siguientes ejemplos:

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

 
PROPIEDADES 

Producto: 4D
Tema: Archivo y carpeta

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

 
ARTICLE USAGE

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