| 4D v18Path to object | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v18
 Path to object  
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Path to object ( rota {; tipoRota} ) -> Resultado | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| rota | Texto |   | Nome da rota | |||||
| tipoRota | Inteiro longo |   | Sintaxe do tipo de rota: System (padrão) ou Posix | |||||
| Resultado | Objeto |   | Objeto que descreve o conteúdo da rota. | |||||
O comando Path to object devolve um objeto que contenha as propriedades específicas da rota que passou no parâmetro.
De forma pré-determinada, se omitir o parâmetro tipoRota, se assumirá que passou uma rota de sistema que contém separadores de sistema ("\" em Windows, ":" em macOS). Se passou uma rota Posix que contenha separadores de Posix ("/") ou deseja expressar o tipo de rota, passe uma das constantes abaixo no parâmetro tipoRota:
| Constante | Tipo | Valor | Comentário | 
| Path is POSIX | Inteiro longo | 1 | A rota ou caminho é expressa usando a sintaxe Posix | 
| Path is system | Inteiro longo | 0 | (Pré-determinado) A rota ou caminho é expressa usando a sintaxe atual do sistema (Windows ou macOS) | 
O comando devolve um objeto resultante de analizar a rota. As propriedades abaixo estão disponíveis:
| Propriedade | Tipo | Descrição | 
| parentFolder | Texto | Informação do diretório para a rota. O último caractere é sempre um separador de pastas. | 
| name | Texto | Nome de arquivo ou pasta final da rota especificada, sem extensão. | 
| extension | Texto | Extensão do nome final de arquivo ou pasta. Sempre começa por ".". String vazia "" se não houver extensão. | 
| isFolder | Booleano | True se o nome for um nome de pasta, do contrário, do contrário (o valor pré-determinado é false) | 
Vai se supor que passou uma rota de pasta se o último caractere da rota for um separador correspondente ao tipo de rota (por exemplo, "\" em Windows). Do contrário, se suporá que passou um nome de arquivo. A extensão, se não estiver vazia, é retornada independente de se a rota representa um arquivo ou pasta, Em qualquer caso, é necessário concatenar o nome e extensão para recuperar o nome completo.
Lembre que Path to object só maneja strings. Tampouco comprova se a rota for válida com respeito ao tipo de rota, nem a existência real de nenhum arquivo ou pasta.
Os exemplos abaixo mostram vários resultados com rotas de arquivos:
 C_OBJECT($o)
 $o:=Path to object("C:\\first\\second\\fileZ") //em 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) //em Windows
  //$o.parentFolder="\\images\\jan\\"
  //$o.name="pict1"
  //$o.extension=".png"
  //$o.isFolder=falseDefinindo uma rota a uma pasta:
 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=trueSe a rota for um diretório raiz, parentFolder está vazio:
 C_OBJECT($o)
 $o:=Path to object("C:\\")  //em 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=trueSe a última parte da rota for ".something", se considera como um nome de arquivo:
 C_OBJECT($o)
 $o:=Path to object("/folder/.invisible";Path is POSIX)
  //$o.parentFolder="/folder/"
  //$o.name=".invisible"
  //$o.extension=""
  //$o.isFolder=falseÉ possível combinar este comando com Object to path para mudar o nome de um arquivo em uma rota:
 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"Se quiser saber a quantidade de subpastas em uma rota:
 C_OBJECT($o)
 C_TEXT($path)
 C_LONGINT($vCount)
 $path:=Select folder //permite que o usuário selecione uma pasta
 $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))
									Convert path POSIX to system
									
									Convert path system to POSIX
									
									File
									
									Folder 
									
									Object to path
									
									Test path name
									
	Produto: 4D
	Tema: Documentos de Sistema
	Número 
        1547
        
        
        
	
	Criado por: 4D v16 R6
	
	
	
	
	
	
	
	
	
	Manual de linguagem 4D ( 4D v18)
	
	
	
	
	
 Adicionar um comentário
Adicionar um comentário