Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Pagetitle
CpyS2TEx
CpyS2TEx

Copia um arquivo de um path absoluto da máquina onde o Application Server está sendo executado o AppServer para a , para um path absoluto na máquina onde o Smartclient está sendo executado o SmartClient, atualizando também o datetime do arquivo copiado, para ser igual ao arquivo de origem.

Sintaxe

Bloco de código
collapsefalse
CpyS2TEx( < cServer >, < cClient >, [ lChangeCase ] )

...

Nome

Tipo

Descrição

Obrigatório

Referência

cServer

caractere

Indica o caminho completo do arquivo na máquina do servidor que será copiado.

X

 

cClient

caractere

Indica o caminho completo do arquivo de destino na máquina onde está o SmartClient.

X

 

lChangeCase

lógicoIndica

se colocará os caminhos de pastas e arquivos em letra minúsculaSe verdadeiro (.T.), nomes de arquivos e pastas serão convertidos para letras minúsculas; caso contrário, falso (.F.), não será feito nenhum ajuste no nome do arquivo informado. Valor padrão (.T.). Veja maiores informações em Observações.

 

 

Retorno

Nome

Tipo

Descrição

lRet

lógico

Retorna verdadeiro (.T.) se o arquivo for copiado com sucesso; retorna falso (.F.) em caso de falha na cópia.

...

  • A função CpyS2TEx exige que o programa AdvPL que a execute seja um SmartClient, não permitindo, portanto, que seja chamada em JOB. A partir da build 7.00.120420A, caso a função seja chamada em JOB, o programa será finalizado com ocorrência de erro fatal "Function CpyS2Tex() doesn't available in JOB.". Nas builds anteriores, se CpyS2TEx fosse chamada em JOB, ela não era executada e não gerava mensagem de advertência ou ocorrência de erro.
  • Diferentemente das demais funções de arquivo, esta exige que seja especificado o caminho completo com o nome do arquivo de destino, e não apenas a pasta de destino. Caso o arquivo no destino (client) já exista, o mesmo será sobrescrito.
  • Em caso de falha, pode ser utilizada a função FError, porém não é possível saber se a falha na cópia está relacionada com algum problema de acesso na origem, no destino, ou mesmo durante a cópia. Normalmente as causas mais prováveis de falha são inconsistências nos parâmetros, como especificar um arquivo de origem que não existe, ou que esteja em uso por outro processo; ou especificar um diretório de destino que não exista; ou que o usuário que iniciou o programa não tenha direitos de escrita; falta de espaço em disco no destino durante a cópia; falha no acesso ao sistema de arquivos na pasta temporária do servidor ou do SmartClient; ou ainda o arquivo já exista no diretório de destino, e esteja em uso por outro processo.
  • Ao contrário das funções CpyS2T ou CpyT2S, a compactação do arquivo antes de enviar está desabilitada.
  • Os caminhos de cServer e cClient serão convertidos para letra minúscula. A partir da O parâmetro opcional lChangeCase foi introduzido a partir do build 7.00.121227A, o caminho não será convertido para letra minúscula para Logix.A partir da build 7.00.131227A foi criado o parâmetro lChangeCase, que se for definido com o valor .T., altera o nome dos arquivos e pastas para letra minúscula, e se for .F. não altera o nome informado. O valor padrão do parâmetro é .T.131227A pois em sistemas LINUX/UNIX, existe a diferenciação entre maiúsculo e minúsculo em nomes de arquivos ou pastas. Quando este parâmetro for informado, terá prioridade sobre comportamento de Case Sensitive definido pelas chaves de ini CASESENSITIVE ou SERVERTYPE. Porem, quando não especificado o parâmetro, o valor padrão (.T.) fica condicionado ao que está configurado nessas chaves.
  • Em ambiente Windows, os nomes de arquivos e pastas não possuem diferenciação entre maiúsculo e minúsculo, logo, a função conseguirá tratar os arquivos e pastas independente do valor definido no parâmetro lChangeCase. Em ambiente Linux ou Mac, os nomes dos arquivos e pastas respeitam a diferenciação.
  • Quando o SmartClient utilizado for uma build nativa Linux ou Mac, sabe-se que sistema de arquivos destas plataformas não têm unidade de disco, a nomenclatura dos arquivos é case sensitive (letras minúsculas diferente de maiúsculas), e as barras separadoras de diretório / pasta são barras normais "/" ao invés de barras inversas "\". Mesmo nestes casos, deve-se especificar uma letra de unidade de disco no diretório de destino; pois quando o SmartClient em Linux e/ou Mac receber o diretório de destino, com a unidade de disco especificada, a unidade será ignorada e as barras serão internamente invertidas. Por exemplo, a cópia especificando o path de destino "C:\USER\LOCAL\TEMP\" será interpretado pelo SmartClient Linux e/ou Mac como "/user/local/temp/".

...

Veja também