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 v20 R7
Path to object

Path to object  


 

Path to object ( Ruta {; tipoRuta} ) -> Resultado 
Parámetro Tipo   Descripción
Ruta  Texto in Nombre de la ruta
tipoRuta  Entero largo in Tipo de sintaxis de ruta: Sistema (por defecto) o Posix
Resultado  Objeto in Objeto que describe los contenidos de la ruta

El comando Path to object devuelve un objeto que contiene las propiedades específicas de la ruta que pasó en el parámetro.

De forma predeterminada, si omite el parámetro tipoRuta, se asumirá que pasó una ruta del sistema que contiene separadores del sistema ("\" en Windows, ":" en macOS). Si pasó una ruta Posix que contiene separadores de Posix ("/") o desea expresar el tipo de ruta, pase una de las siguientes constantes en el parámetro tipoRuta:

Constante Tipo Valor Comentario
Path is POSIX Entero largo 1 La ruta se expresa utilizando la sintaxis de Posix
Path is system Entero largo 0 (Por defecto) La ruta se expresa utilizando la sintaxis actual del sistema (Windows o macOS)

El comando devuelve un objeto resultante de analizar la ruta. Las siguientes propiedades están disponibles:

PropiedadTipoDescripción
parentFolderTextoInformación del directorio para la ruta. El último caracter es siempre un separador de carpetas.
nameTextoNombre del archivo o carpeta final de la ruta especificada, sin extensión.
extensionTextoExtensión del nombre final de archivo o carpeta. Siempre comienza por ".". Cadena vacía "" si no hay extensión.
isFolderBooleanoTrue si el nombre es un nombre de carpeta, de lo contrario, de lo contrario (el valor predeterminado es false)

Se supondrá que pasó una ruta de carpeta si el último carácter de la ruta es un separador correspondiente al tipo de ruta (por ejemplo, "\" en Windows). De lo contrario, se supondrá que pasó un nombre de archivo.
La extensión, si no está vacía, se devuelve independientemente de si la ruta representa un archivo o una carpeta. En este caso, debe concatenar el nombre y la extensión para recuperar el nombre completo.

Tenga en cuenta que Path to object  solo maneja cadenas. Tampoco comprueba si la ruta es válida con respecto al tipo de ruta, ni a la existencia real de ningún archivo o carpeta.

Los siguientes ejemplos muestran varios resultados con rutas de archivos:

 C_OBJECT($o)
 $o:=Path to object("C:\\first\\second\\fileZ") //en Windows
  //$o.parentFolder="C:\\first\\second\\"
  //$o.name="fileZ"
  //$o.extension=""
  //$o.isFolder=false

 C_OBJECT($o)
 $o:=Path to object("osx:Users:john:Documents:Comments.text)  //en macOS
  //$o.parentFolder="osx:Users:john:Documents:"
  //$o.name="Comments"
  //$o.extension=".text"
  //$o.isFolder=false

 C_OBJECT($o)
 $o:=Path to object("\\images\\jan\\pict1.png";Path is system//en Windows
  //$o.parentFolder="\\images\\jan\\"
  //$o.name="pict1"
  //$o.extension=".png"
  //$o.isFolder=false

Definiendo una ruta a una carpeta:

 C_OBJECT($o)
 $o:=Path to object("osx:Users:oscargoldman:Desktop:Databases:") //macOS
  //$o.parentFolder="osx:Users:oscargoldman:Desktop:"
  //$o.name="Databases"
  //$o.extension=""
  //$o.isFolder=True

 C_OBJECT($o)
 $o:=Path to object("C:\\4D\\Main\\216410\\64\\4D\\4D.user\\")  //windows
  //$o.parentFolder="C:\\4D\\Main\\216410\\64\\4D\\"
  //$o.name="4D"
  //$o.extension=".user"
  //$o.isFolder=true

 C_OBJECT($o)
 $o:=Path to object("/first/second.bundle/";Path is POSIX)
  //$o.parentFolder="/first/"
  //$o.name="second"
  //$o.extension=".bundle"
  //$o.isFolder=true

Si la ruta es un directorio raíz, parentFolder está vacío:

 C_OBJECT($o)
 $o:=Path to object("C:\\")  //en windows
  //$o.parentFolder=""
  //$o.name="c:"
  //$o.extension=""
  //$o.isFolder=true

 C_OBJECT($o)
 $o:=Path to object("osx:") //en macOS
  //$o.parentFolder=""
  //$o.name="osx"
  //$o.extension=""
  //$o.isFolder=true

Si la última parte de la ruta es ".something", se considera como un nombre de archivo:

 C_OBJECT($o)
 $o:=Path to object("/folder/.invisible";Path is POSIX)
  //$o.parentFolder="/folder/"
  //$o.name=".invisible"
  //$o.extension=""
  //$o.isFolder=false

Puede combinar este comando con Object to path para cambiar el nombre de un archivo en una ruta:

 C_OBJECT($o)
 C_TEXT($path)
 $o:=Path to object("C:\\4D\\resources\\images\\4D.jpg")
  //$o.parentFolder="C:\\4D\\resources\\images\\"
  //$o.name="4D"
  //$o.extension=".jpg"
  //$o.isFolder=false
 
 $o.name:="4DOld"
 $path:=Object to path($o)
  //$path="C:\4D\resources\images\4DOld.jpg"

Desea saber la cantidad de subcarpetas en una ruta:

 C_OBJECT($o)
 C_TEXT($path)
 C_LONGINT($vCount)
 $path:=Select folder //let the user select a folder
 $o:=Path to object($path)
 Repeat
    $o:=Path to object($o.parentFolder)
    $vCount:=$vCount+1
 Until($o.parentFolder="")
 ALERT("The path depth is: "+String($count))



Ver también 

Convert path POSIX to system
Convert path system to POSIX
File
Folder
Object to path
Test path name

 
PROPIEDADES 

Producto: 4D
Tema: Documentos del sistema
Número 1547

This command can be run in preemptive processes

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

Creado por: 4D v16 R6

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v20 R7)