Árvore de páginas

Função: SplitPath

Divide um caminho de disco completo em todas as suas subpartes (drive, diretório, nome e extensão).

SplitPath ( < cArquivo>, [ @cDrive], [ @cDiretorio], [ @cNome], [ @cExtensao] ) --> Nil

 

NomeTipoDescriçãoObrigatórioReferência
cArquivoCaracterIndica o nome do arquivo que será quebrado. Além disso, opcionalmente, pode-se incluir o diretório e unidade do disco.X 
cDriveCaracterIndica o nome da unidade do disco (exemplo: C:\). Caso o arquivo informando não possua a unidade de disco ou o diretório refira-se ao servidor, a função retornará uma string em branco. X
cDiretorioCaracterIndica o nome do diretório. Caso o arquivo informado não possua diretório, a função retornará uma string em branco. X
cNomeCaracterIndica o nome do arquivo sem extensão. Caso o parâmetro cArquivo não seja informado, a função retornará uma string em branco. X
cExtensaoCaracterIndica a extensão do arquivo informado, no parâmetro cArquivo, pré-fixada com um ponto ".". Caso a extensão, no parâmetro cArquivo, não seja especificada, a função retornará uma string em branco. X

 

Nil (Nulo)
  • Todos os parâmetros, a partir do segundo, quando informados, devem ser por referência.
  • O diretório, caso informado, incluíra uma barra como último caractere.
  • A extensão, quando retornada, sempre incluirá o ponto (.) antes da extensão.
  • Essa função não valida a sintaxe do diretório e/ou arquivo digitado, nem a existência do mesmo.
  • Essa função é utilizada para determinar, em uma string, os elementos que compõe um diretório para a localização de um arquivo.
  • Quando o Servidor de Aplicação estiver sendo executado em Linux, todas as informações retornadas pela função estarão em letras minúsculas, e as barras separadoras de diretório utilizadas serão "/"
//Exemplo 1
Local cDrive, cDir, cNome, cExt
SplitPath( 'c:\path\arquivo.ext', @cDrive, @cDir, @cNome, @cExt )
/* Retorno
cDrive // Resultado: "c:"
cDir // Resultado: "\path\"
cNome // Resultado: "arquivo"
cExt // Resultado: ".ext"
*/
----------------------------------------------------------------------------------------------
//Exemplo 2
//No exemplo abaixo , exemplificamos o funcionamento da função SplitPath , usando combinações de nomes
//de arquivos com ou sem drive , caminho , nome de arquivo e/ou extensão.

User Function TSTSplit()
Local aArq := {} , cDrive, cDir, cNome, cExt
aadd(aArq,'c:\path\arquivo.ext')
aadd(aArq,'c:\path\arquivo')
aadd(aArq,'c:\path\')
aadd(aArq,'c:\arquivo')
aadd(aArq,'\path\arquivo.ext')
aadd(aArq,'path\arquivo')
aadd(aArq,'\\servidor\pasta\')
aadd(aArq,'\\servidor\pasta\arquivo.ext')
aadd(aArq,'')
For nI := 1 to len(aArq)
SplitPath( aArq[nI], @cDrive, @cDir, @cNome, @cExt )
conout( aArq[nI] + ' ['+cDrive+'] ['+ cDir +'] ['+ cNome +'] ['+ cExt + ']')
Next
Return

//Após executado o programa acima, deve ser exibido no console do Protheus Server o texto abaixo :
c:\path\arquivo.ext [c:] [\path\] [arquivo] [.ext]
c:\path\arquivo [c:] [\path\] [arquivo] []
c:\path\ [c:] [\path\] [] []
c:\arquivo [c:] [\] [arquivo] []
\path\arquivo.ext [] [\path\] [arquivo] [.ext]
path\arquivo [] [path\] [arquivo] []
\\servidor\pasta\ [] [\\servidor\pasta\] [] []
\\servidor\pasta\arquivo.ext [] [\\servidor\pasta\] [arquivo] [.ext]
[] [] [] []
Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server

 

  • Sem rótulos