Histórico da Página
Composition Setup |
---|
import.css=/download/attachments/3279126062824/newLayouttecnologia.css |
Portuguese |
Pagetitle | ||||
---|---|---|---|---|
|
Função: CpyT2S
Copia
...
um
...
arquivo da máquina onde está sendo executado o SmartClient, para um diretório no ambiente do servidor, a partir do rootpath.
Sintaxe
Bloco de código | ||
---|---|---|
| ||
CpyT2S( < cFile >, < cFolder >, [ lCompress ], [ lChangeCase ] )
|
Parâmetros
CpyT2S ( < cOrigem>, < cDestino>, [ lCompacta] ) --> lRet
...
Nome | Tipo | Descrição | Obrigatório | Referência |
---|
...
cFile |
...
caractere | Indica o |
...
arquivo na máquina onde está o SmartClient que será copiado. | X |
...
cFolder |
...
caractere | Indica |
...
a pasta de destino |
...
no servidor (a partir do rootpath). | X |
...
lCompress |
...
lógico | Indica se o arquivo deve ser internamente compactado antes de fazer a cópia. Default = .T. (verdadeiro) | |||
lChangeCase | lógico | Indica se colocará os caminhos de pastas e arquivos em letra minúscula. |
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. |
Observações
- A função CpyT2S 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 CpyT2S() doesn't available in JOB.
...
- ". Nas builds anteriores, se CpyT2S fosse chamada em JOB, ela não era executada e não gerava mensagem de advertência ou ocorrência de erro.
- O diretório no destino (servidor) deve existir para que a cópia seja realizada com sucesso.
- 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.
- Caso a compactação esteja habilitada (Default = .T.), no parâmetro <
...
- lCompress>, o arquivo será compactado automaticamente no client antes do envio, e descompactado automaticamente no servidor. Para a grande parte dos tipos de arquivo, utilizar a compactação reduz o tempo de cópia, pois o conteúdo trafegado pela rede é menor. Para tráfego de arquivos que já possuem algum tipo de compressão de dados (ZIP, TAR, RAR, JPG, MPG), é mais eficiente especificar este parâmetro com .F., para que a compactação automática não seja utilizada, pois nestes casos a mesma não agregará nenhum ganho neste processo.
...
O diretório no destino (servidor) deve existir para que a cópia seja realizada com sucesso. Caso a cópia falhe, para identificação do motivo do erro, a função FError deve ser chamada.
- O arquivo compactado é gravado na pasta temporária do client e descompactado na pasta de destino do servidor.
- Os caminhos de cFile e cFolder serão convertido para letra minúscula. A partir da 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..
- 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 de disco 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/"
...
- .
Exemplos
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
// Copia arquivos do remote local para o servidor, compactando antes de transmitir
CpyT2S( "C:\TEMP\MANUAL.DOC", "\BKP" )
// Copia arquivos do remote local para o servidor, sem compactar antes de transmitir
CpyT2S( "C:\TEMP\MANUAL.DOC", "\BKP", .F. )
|
Veja também
...