Função: SplitPathDivide um diretóriocaminho 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 |
Todos os parâmetros, a partir do segundo, quando passadosinformados, 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.Todos os arquivos locais e no servidor, podem ser informados nessa função. - 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 |