Clipper On Line • Ver Tópico - Compactar sem salvar o Path

Compactar sem salvar o Path

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Compactar sem salvar o Path

Mensagempor rubens » 16 Out 2017 16:52

Boa tarde...

Alguém sabe se tem como compactar arquivos sem salvar o path?
No exemplo da pasta: C:\MiniGUI\SAMPLES\BASIC\Zip\demo.prg compacta os arquivos das pasta, só que salva o path. Daí se você visualizar o arquivo compactado vem todo o path e depois os arquivos.
Temo como compactar somente os arquivos sem a estrutura?
Eu já consigo compactar. Preciso compactar os xmls para enviar por email. A pasta dos xmls não é a mesma do programa. Geralmente é: C:\ACBRNFE\NFE\102017\NFE\*.XML, na hora que compacta vai todo este path. Daí o contador reclama, porque para descompactar tem que ficar abrindo estas pastas. Precisava que viesse somente os arquivos XML.

Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

Compactar sem salvar o Path

Mensagempor Toledo » 17 Out 2017 07:36

Rubens, é só tirar o parâmetro STOREPATH do comando COMPRESS.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Compactar sem salvar o Path

Mensagempor Mario Mesquita » 28 Nov 2017 19:12

Pessoal, boa noite.

Estou com o mesmo problema, arquivos em uma pasta que estão indo para o .zip com o path completo.

Na verdade, os arquivos estão em uma pasta e para o Compress achar os arquivos, tive que pôr o path, aí desanda tudo. Posso gerar na pasta do programa, mas fica melhor manter os arquivos guardados na pasta, mas se não tiver jeito...

Tentei usar o STOREPATH no Compress, mas quando o coloco, dá erro de compilação. Está assim:

COMPRESS afiles                                               ;
           TO (xDest)                                           ;
         BLOCK {|cFile,nPos| ProgressUpdate( nPos, cFile ) }  ;
         OVERWRITE ;                                           
         STOREPATH


Se alguem tiver uma dica, agradeço a ajuda.

Abraço a todos,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

Compactar sem salvar o Path

Mensagempor JoséQuintas » 28 Nov 2017 21:18

Eu nem sei como se salva PATH junto com arquivos....
Olharam exemplos da minigui ou do Harbour?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Compactar sem salvar o Path

Mensagempor Mario Mesquita » 29 Nov 2017 07:32

Bom dia a todos.

Quintas, tá salvando sim. Não sei se porque estou dando o path dos arquivos para poder compactar e ele assume o path junto. O inconveniente é que fica a árvore toda lá do c: até a subpasta dos arquivos. Como é um arquivo para envio creio que o receptor não deseje esse monte de atalho dentro do zip.

A solução tosca será fazer o .zip na pasta onde fica o programa, mas é uma solução pouco elegante, até pq seria bom arquivar o que foi enviado.

Uma coisa boba dando um trabalhão, kkkk

Se alguém tiver uma dica, desde já agradeço.

Sds,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

Compactar sem salvar o Path

Mensagempor Daniel » 29 Nov 2017 10:35

Ola
Eu uso assim.
Incluir estas Libs, hbziparc.lib + hbmzip.lib + minizip.lib + hbzlib.lib para funcionar a senha
se não usar senha só esta ziparchive.lib

#include "minigui.ch"

*-----------------------------
Function MAIN()
*-----------------------------
Public cBase:= 'c:\WinMenu\'

   SET CENTURY ON
   SET DATE ANSI
   SET ShowDetailError ON
   SET DELETED ON
   SET BROWSESYNC ON

   DEFINE WINDOW Form_Backup ;
      AT 0,0 ;
      WIDTH 280 HEIGHT 200 ;
      TITLE 'Acesso ao Sistema de Backup' ;
      MAIN NOSYSMENU BACKCOLOR BLUE

      @  10, 30 PROGRESSBAR Progress_1 RANGE 0,  80 WIDTH 200 HEIGHT 26

      @  50, 30 PROGRESSBAR Progress_2 RANGE 0, 100 WIDTH 200 HEIGHT 26

      @  85, 30 LABEL label_1 VALUE '';
         WIDTH 200 HEIGHT 24 ;
         BACKCOLOR BLUE FONTCOLOR WHITE BOLD

      @ 120, 85 BUTTON Bt_Login ;
         CAPTION '&Backup' ;
         ACTION { || F_Backup()} ;
          FONT "MS Sans Serif" SIZE 09 FLAT

   End WINDOW
   DoMethod("Form_Backup","Bt_Login","SetFocus")
   CENTER WINDOW Form_Backup
   ACTIVATE WINDOW Form_Backup
   Return Nil

**********************************************
Function F_Backup()
local aDiri := Directory(cBase + "*.*")
local afiles:= {}, x

   For x:= 1 To Len(aDiri)
      If Upper(SubStr(aDiri[x, 1], -3)) == 'DBF' .Or. Upper(SubStr(aDiri[x, 1], -3)) == 'FPT'
         AAdd(afiles, cBase + aDiri[x, 1])
      EndIf
   Next
   Form_Backup.Progress_1.Value   := 0
   Form_Backup.Progress_2.RangeMax:= Len(afiles)
   COMPRESS afiles ;
      TO 'KipDbf.Zip' ;
      BLOCK {|cFile,nPos| ProgressUpdate(nPos, cFile) }  ;
      LEVEL 8  ;
      PASSWORD '[D1a2N3i4E5l6]' ;
      OVERWRITE ;
      FILEPROGRESS {|nPos, nTotal| ProgressFile(nPos, nTotal) }
   Form_Backup.Release
   Return nil

**********************************
Static Function ProgressUpdate( nPos, cFile )

   Form_Backup.Progress_1.Value:= nPos
   Form_Backup.Label_1.Value   := TokenUpper(Lower(cFileNoPath(cFile)))
   Return Nil

**********************************
Static Function ProgressFile(nPos, nTotal)

   Form_Backup.Progress_2.Value:= ( nPos / nTotal ) * 100
   Return Nil
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Avatar de usuário

Daniel
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 373
Data de registro: 13 Ago 2003 22:42
Cidade/Estado: Apucarana - PR
Curtiu: 0 vez
Mens.Curtidas: 36 vezes

Compactar sem salvar o Path

Mensagempor Mario Mesquita » 30 Nov 2017 12:56

Boa tarde a todos.

Parece piada, mas não sei como incorporar libs externas no HMG.

Com essas, ele zipa certinho, sem levar os paths junto? Aqui eu tive que gerar a partir da pasta do programa, aí vai sem nada.

Sds,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

Compactar sem salvar o Path

Mensagempor Daniel » 01 Dez 2017 14:24

o arquivo bat fica assim para testar
grava o zip sem o path

call c:\minigui\batch\compile.bat %1 /l hbziparc /l hbmzip /l minizip /l hbzlib
Daniel

Harbour + Minigui + dbfcdx
Marinas-Gui Pena que parou o suporte
Avatar de usuário

Daniel
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 373
Data de registro: 13 Ago 2003 22:42
Cidade/Estado: Apucarana - PR
Curtiu: 0 vez
Mens.Curtidas: 36 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 8 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro