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
Nome | Tipo | Descrição | Obrigatório | Referência |
cArquivo | Caracter | Indica o nome do arquivo que será quebrado. Além disso, opcionalmente, pode-se incluir o diretório e unidade do disco. | X | |
cDrive | Caracter | Indica 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 | |
cDiretorio | Caracter | Indica o nome do diretório. Caso o arquivo informado não possua diretório, a função retornará uma string em branco. | X | |
cNome | Caracter | Indica 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 | |
cExtensao | Caracter | Indica 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
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas