Login
Buscar
Quem está conectado
Há 5 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 5 Visitantes :: 2 Motores de buscaNenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 71 em 19/7/2010, 11:47
Brasília
| |
Estamos no Twitter

Nossa Comunidade

Nosso Grupo

Últimos assuntos
Top dos mais postadores
| Marcos Guedes | ||||
| hugo | ||||
| alceu11 | ||||
| Julio | ||||
| marcelofazan | ||||
| mfelis | ||||
| cabeludo | ||||
| Tales Ruan | ||||
| Nelson Arcas | ||||
| marcio |
Contagem Regressiva em tela de login
16/7/2010, 11:10 por Linghston
Ola amigos, esta é minha primeira participação neste forum e espero poder encontar aqui ajuda para ...
Comentários: 15
Estatísticas
Temos 926 usuários registradosO último usuário registrado atende pelo nome de Maria Tognetti
Os nossos membros postaram um total de 8596 mensagens em 1239 assuntos
Rotina ZIP não Substitui os Arquivos
Página 1 de 1 • Compartilhe •
Rotina ZIP não Substitui os Arquivos
Olá Estou criando um Sistema de Altualização neste sistema eu fasso ele Baixar Por FTP um Arquivo ZIP.e Usando uma Rotina eu extraio mas o problema é que quando extraio em um directorio vazio ele extrai normal mas quando tempo extrai na pasta do sistema ele simplesmente não substitui os arquivos?
Rotina
Rotina
- Código:
Lparameters lArquivo, LDestino, lArquivoNome
*!* Validando propiedades antes de Iniciar
Do Case
Case Empty(lArquivo)=.T. Or File(lArquivo)=.F.
=Messagebox("O Arquivo não foi Encontrado.",0+16+0,'Falta de Arquivo')
Return 0
Case File(Sys(5) + Curdir() + 'aUnZip32.dll')=.F.
=Messagebox('Não Foi Encontrado o Arquivo aUnZip32.dll',0+16+0,'Falta de Arquivo')
Return 0
Otherwise
Set Step On
*!* Declarando metodos de la API de Windows
Private HWnd
Declare Integer GetActiveWindow In win32api
HWnd = GetActiveWindow()
LTempFolder = Getenv("USERPROFILE") + "\LTFiles\Game\" &&---> Pasta para Armazenamento Temporario de Arquivos
Thisform.StasGeral.Caption = "Aguarde..."
*!* Declarando metodos y propiedades de la API aUnZIP32.dll
Declare Long addUNZIP In aunzip32.Dll
Declare Integer addUNZIP_Abort In aunzip32.Dll Integer iFlag
Declare Integer addUNZIP_ArchiveName In aunzip32.Dll String filename
Declare Integer addUNZIP_Decrypt In aunzip32.Dll String cPassword
Declare Integer addUNZIP_DisplayComment In aunzip32.Dll Integer bFlag
Declare Integer addUNZIP_Exclude In aunzip32.Dll String Files
Declare Integer addUNZIP_ExcludeListFile In aunzip32.Dll String cFile
Declare Integer addUNZIP_ExtractTo In aunzip32.Dll String cPath
Declare Integer addUNZIP_Freshen In aunzip32.Dll Integer iFlag
Declare Integer addUNZIP_GetLastError In aunzip32.Dll
Declare Integer addUNZIP_GetLastWarning In aunzip32.Dll
Declare Integer addUNZIP_Include In aunzip32.Dll String Files
Declare Integer addUNZIP_IncludeListFile In aunzip32.Dll String cFile
Declare addUNZIP_Initialise In aunzip32.Dll
Declare Integer addUNZIP_InstallCallback In aunzip32.Dll String funnc
Declare Integer addUNZIP_Overwrite In aunzip32.Dll Integer iFlag
Declare Integer addUNZIP_Register In aunzip32.Dll String cName, Long lNumber
Declare Integer addUNZIP_ResetDefaults In aunzip32.Dll
Declare Integer addUNZIP_RestoreAttributes In aunzip32.Dll Integer iFlag
Declare Integer addUNZIP_RestoreStructure In aunzip32.Dll Integer iFlag
Declare Integer addUNZIP_SetParentWindowHandle In aunzip32.Dll Long HWnd
Declare Integer addUNZIP_SetWindowHandle In aunzip32.Dll Long HWnd
Declare Integer addUNZIP_Test In aunzip32.Dll Integer iFlag
Declare Integer addUNZIP_ToMemory In aunzip32.Dll String lpStr, Long Uint32
Declare Integer addUNZIP_Update In aunzip32.Dll Integer iFlag
Declare Integer addUNZIP_View In aunzip32.Dll Integer bFlag
*!* Muda a Extensão do Arquivo para Zip
lArquivoNome = Getwordnum(lArquivoNome,1,".") + '.zip'
Copy File (lArquivo) To (LTempFolder + lArquivoNome)
*!* Iniciando proceso
addUNZIP_Initialise()
addUNZIP_SetParentWindowHandle(_Screen.HWnd)
addUNZIP_Register(Alltrim("UBS, INC."),600365060)
addUNZIP_Decrypt("LTUPDATE0255")
addUNZIP_RestoreStructure(1)
addUNZIP_Freshen(1)
addUNZIP_ArchiveName(LTempFolder + lArquivoNome)
addUNZIP_Include('*.*')
addUNZIP_Overwrite(.T.)
addUNZIP_ExtractTo(Alltrim(Fullpath(LDestino)))
Return addUNZIP()
Endcase

mfelis- Participa Bastante

Re: Rotina ZIP não Substitui os Arquivos
Já tentou deletar os arquivos antes?
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras

Marcos Guedes- Webmaster

Re: Rotina ZIP não Substitui os Arquivos
Este é o Problema como eu vou deletar os arquivos sendo que não são todos os arquivo e sim alguns arquivos que ser altualizados incluindo pasta e subpastas e assim por diante seria muito complicado porque teria que criar uma rotina que fosse excluindo os arquivos de uma vez.por isso optei pelo Zip assim posso subtituir tudo de uma vez

mfelis- Participa Bastante

Re: Rotina ZIP não Substitui os Arquivos
mfelis, eu não estou com tempo para analisar o que há de errado em seu código, agora, então sugiro que experimentes utilizar esta rotina para descompactar o arquivo zip:
[Você precisa estar registrado e conectado para ver este link.]
Tenho utilizado a um tempo e não tive problemas até o momento.

[Você precisa estar registrado e conectado para ver este link.]
Tenho utilizado a um tempo e não tive problemas até o momento.

_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras

Marcos Guedes- Webmaster

Re: Rotina ZIP não Substitui os Arquivos
Uso Está Tb mas o problema é que não cosigo substituir os arquivos.

mfelis- Participa Bastante

Re: Rotina ZIP não Substitui os Arquivos
Sugestao
Eu acho que para ajudar, se nao for incomodo para voce, seria colocar, o form que acessa este ftp, e mostre como baixa e compacta. e as dll unzip.dll,
Se nao temos as dll para testar, se nao temos o form que faz este processo, como poderemos ajudar.
Sera no chutemetro, desgante para quem responde, desgate para voce, que pergunta!!
Qual FTP QUE VC usa ele é gratuito?
o ftp que vc usa e o xpg
[Você precisa estar registrado e conectado para ver este link.]
***********************
O OBJETIVO DE TUDO ISTO ,poderia explicar como vai funcionar este processo:
SERIA?
O seu cliente, tem VARIAS filiais, voce quer que ele nas filiais, compacta a base mais os indices cdx.
Para a matriz, baixar o backup das filiais que estao neste [Você precisa estar registrado e conectado para ver este link.]
Voce esta compactando EM QUE MOMENTO?
E atualiza os dados da matriz,
JA ESTOU COMECANDO A FAZER CHUTOMETRO PQ NAO SEI TODO O PROCESSO
NAO E RUIM ISTO?
PQ SE FOR ISTO, pq nao descompactar tudo, que veio, ja que vales os dados na sua integra.!!!
Eu acho que para ajudar, se nao for incomodo para voce, seria colocar, o form que acessa este ftp, e mostre como baixa e compacta. e as dll unzip.dll,
Se nao temos as dll para testar, se nao temos o form que faz este processo, como poderemos ajudar.
Sera no chutemetro, desgante para quem responde, desgate para voce, que pergunta!!
Qual FTP QUE VC usa ele é gratuito?
o ftp que vc usa e o xpg
[Você precisa estar registrado e conectado para ver este link.]
***********************
O OBJETIVO DE TUDO ISTO ,poderia explicar como vai funcionar este processo:
SERIA?
O seu cliente, tem VARIAS filiais, voce quer que ele nas filiais, compacta a base mais os indices cdx.
Para a matriz, baixar o backup das filiais que estao neste [Você precisa estar registrado e conectado para ver este link.]
Voce esta compactando EM QUE MOMENTO?
E atualiza os dados da matriz,
JA ESTOU COMECANDO A FAZER CHUTOMETRO PQ NAO SEI TODO O PROCESSO
NAO E RUIM ISTO?
PQ SE FOR ISTO, pq nao descompactar tudo, que veio, ja que vales os dados na sua integra.!!!
alceu11- Participante Assíduo

Re: Rotina ZIP não Substitui os Arquivos
Uma observação, se o arquivo estiver sendo usado no instante do Update pode ser que o sistema não esteja conseguindo, porque o mesmo está travado, outra coisa o sistema de descompactação deve ter um método para trazer a lista de arquivos internos, capture os mesmos e depois crie um FOR ou While como queira e vai apagando um a um, ao final do processo faça a descompactação, com isto dará para você verificar se o arquivo está ou não travado, não sei se ajudou mas ficamos no aguardo de uma resposta.
Abraços.
Abraços.
lardecristo- Participante Regular

Re: Rotina ZIP não Substitui os Arquivos
Irei Explicar com Detalhes:
1 > O Programa de Altualização é Iniciado.
2 > É Feito Verificação de Conexão com a Internet
3 > O Programa Baixa um Arquivo do Servidor que COntém a Versão Nova.
4 > O Programa COmpara as Versões se Diferente Altualiza.
5 > Se Difernete Baixa o Arquivo que Dou o Nome de UpdateFile_Numero da Versão.acp - "Usei a Extensão ACP para Evitar Hackemento.".
6 > O Form Principal Despera o Metodo Descomprimir.
7 > O método Descomprimir Muda a Extensão de ACP para ZIP.
8 > Extrai na pasta Indicada
Obs: O Programa de Altualização Fica Separado do Meu Programa.
O Meu Programa fica na Pasta.Ex: C:\Program Files\MeuProjeto\Element
O Programa de Altualização.Ex: C:\Program Files\MeuProjeto\Patcher
O Problema é que Quando Extrai em uma pasta vazia ele Simplesmente Extrai Normal.Mas se Extrio na Pasta do meu Programa ele Ignorá e Não Substitui os Arquivo.
Quando Crio o Arquivo Zip?
Eu Crio o Arquivo ZIP no Servidor Com o Winrar.Veja:
[Você precisa estar registrado e conectado para ver este link.]
1 > O Programa de Altualização é Iniciado.
2 > É Feito Verificação de Conexão com a Internet
3 > O Programa Baixa um Arquivo do Servidor que COntém a Versão Nova.
4 > O Programa COmpara as Versões se Diferente Altualiza.
5 > Se Difernete Baixa o Arquivo que Dou o Nome de UpdateFile_Numero da Versão.acp - "Usei a Extensão ACP para Evitar Hackemento.".
6 > O Form Principal Despera o Metodo Descomprimir.
7 > O método Descomprimir Muda a Extensão de ACP para ZIP.
8 > Extrai na pasta Indicada
Obs: O Programa de Altualização Fica Separado do Meu Programa.
O Meu Programa fica na Pasta.Ex: C:\Program Files\MeuProjeto\Element
O Programa de Altualização.Ex: C:\Program Files\MeuProjeto\Patcher
O Problema é que Quando Extrai em uma pasta vazia ele Simplesmente Extrai Normal.Mas se Extrio na Pasta do meu Programa ele Ignorá e Não Substitui os Arquivo.
Quando Crio o Arquivo Zip?
Eu Crio o Arquivo ZIP no Servidor Com o Winrar.Veja:
[Você precisa estar registrado e conectado para ver este link.]

mfelis- Participa Bastante

Re: Rotina ZIP não Substitui os Arquivos
Crie um caminho temporário, e verifique se o arquivo realmente está sendo gerado, se estiver correto, então copie os dados deste diretório temporário para diretório onde desejas substituir os arquivos.
Acredito que se você utilizar a rotina que indiquei não terás este problema.
Utiliza os mesmos recursos que seu código utiliza, porém com tratamentos de erros e exceções.

Acredito que se você utilizar a rotina que indiquei não terás este problema.
Utiliza os mesmos recursos que seu código utiliza, porém com tratamentos de erros e exceções.

_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras

Marcos Guedes- Webmaster

Re: Rotina ZIP não Substitui os Arquivos
mfelis, você leu o meu post, por favor observe o que escrevi, se estiver ocorrendo o que está lá você tem o caminho para resolver o seu problema, o windows não permite substituir um arquivo que está travado ou melhor em uso.
Experimente fazer isso no seu equipamento
1 - faça uma cópia do arquivo do seu sistema zzzz.exe para uma pasta qualquer, mas lembre-se é uma cópia;
2 - abra o sistema na pasta de origem;
3 - agora vá na pasta que você fez a cópia e tem copiar de lá para a pasta de origem novamente.
Obs.: Me desculpe a observação, mas eu já havia entendi que o seu programa era separado, mais um motivo para a explicação dada.
Qualquer dúvida post novamente.
Experimente fazer isso no seu equipamento
1 - faça uma cópia do arquivo do seu sistema zzzz.exe para uma pasta qualquer, mas lembre-se é uma cópia;
2 - abra o sistema na pasta de origem;
3 - agora vá na pasta que você fez a cópia e tem copiar de lá para a pasta de origem novamente.
Obs.: Me desculpe a observação, mas eu já havia entendi que o seu programa era separado, mais um motivo para a explicação dada.
Qualquer dúvida post novamente.
lardecristo- Participante Regular

Re: Rotina ZIP não Substitui os Arquivos
Eu Tenho Certeza que os Arquivos não estão sendo usados e Marcos estou uzando o método do arquivo Zip para se caso na Minha ALtualização eu Tiver uma Pasta A Mais ou SubPasta e Criar uma Rotina para Verificar as Pasta e Navegalás e Cria-las para ALtualizar Acabaria sendo muito complicado e Lento

mfelis- Participa Bastante

Re: Rotina ZIP não Substitui os Arquivos
Ainda com dificuldades neste problema, Marcelo?
Ou já conseguiu solucioná-lo?
Ou já conseguiu solucioná-lo?
_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras

Marcos Guedes- Webmaster

Re: Rotina ZIP não Substitui os Arquivos
resolvi tive de deletar toda a pasta primeiro usando uma função do windows

mfelis- Participa Bastante

Re: Rotina ZIP não Substitui os Arquivos
Aproveitando,
Alguem consegue incluir arquivos contidos em sub-pastas usando o azip32.dll ?
Abraços
Alguem consegue incluir arquivos contidos em sub-pastas usando o azip32.dll ?
Abraços
_________________
Cleiton Fidelis
Divinopolis - MG
msn: [Você precisa estar registrado e conectado para ver este link.]
skype: cleiton-lc
Cleiton Fidelis- Começando a Participar

Re: Rotina ZIP não Substitui os Arquivos
Cleiton, posso estar enganado, mas no link que indiquei contém exemplos válidos para compactar sub-pastas.Cleiton Fidelis escreveu:Aproveitando,
Alguem consegue incluir arquivos contidos em sub-pastas usando o azip32.dll ?
Abraços

_________________
Marcos Guedes - Programador e desenvolvedor Web.
Convidado, seja nosso seguidor no Twitter:
twitter.com/programacaobras

Marcos Guedes- Webmaster

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum





» Gerador randomico de chave/senha VFP
» Help do VFP 9 desapareceu
» Acessos no Programação Brasil
» Niver do Alceu
» Report com comandos de impressão @ SAY
» VFP Studio
» Emulacao de MAC em PC
» Imagem
» Formação em produção de games 3D no Rio de Janeiro
» Trazer para frente uma aplicação em execução
» PictureBox com fundo transparente
» Report so imprime primeiro registro
» IE x VFP
» Aplicativos para Dispositivos moveis
» Problemas com Form MDI
» Dataset ou Datatable
» Desabafo de um idoso!
» Select criando cursor apresenta erro
» Comandos alterados de DOS para Visual