Saltar al contenido principal
Versión: 20 R7 BETA

Path to object

Path to object ( Ruta {; tipoRuta} ) -> Resultado

ParámetroTipoDescripción
RutaTextNombre de la ruta
tipoRutaIntegerTipo de sintaxis de ruta: Sistema (por defecto) o Posix
ResultadoObjectObjeto que describe los contenidos de la ruta

Descripción

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:

ConstanteTipoValorComentario
Path is POSIXEntero largo1La ruta se expresa utilizando la sintaxis de Posix
Path is systemEntero largo0(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.

Ejemplo 1

Los siguientes ejemplos muestran varios resultados con rutas de archivos:

 var $o : Object
 $o:=Path to object("C:\\first\\second\\fileZ") //en Windows
  //$o.parentFolder="C:\\first\\second\\"
  //$o.name="fileZ"
  //$o.extension=""
  //$o.isFolder=false
 var $o : Object
 $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
 var $o : Object
 $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:

 var $o : Object
 $o:=Path to object("osx:Users:oscargoldman:Desktop:Databases:") //macOS
  //$o.parentFolder="osx:Users:oscargoldman:Desktop:"
  //$o.name="Databases"
  //$o.extension=""
  //$o.isFolder=True
 var $o : Object
 $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
 var $o : Object
 $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:

 var $o : Object
 $o:=Path to object("C:\\")  //en windows
  //$o.parentFolder=""
  //$o.name="c:"
  //$o.extension=""
  //$o.isFolder=true
 var $o : Object
 $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:

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

Ejemplo 2

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

 var $o : Object
 var $path : Text
 $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"

Ejemplo 3

Desea saber la cantidad de subcarpetas en una ruta:

 var $o : Object
 var $path : Text
 var $vCount : Integer
 $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