Compactar sem salvar o Path

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Compactar sem salvar o Path

Mensagem por rubens »

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 do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Compactar sem salvar o Path

Mensagem por Toledo »

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 do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Compactar sem salvar o Path

Mensagem por Mario Mesquita »

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:

Código: Selecionar todos

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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Compactar sem salvar o Path

Mensagem por JoséQuintas »

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Compactar sem salvar o Path

Mensagem por Mario Mesquita »

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 do usuário
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

Compactar sem salvar o Path

Mensagem por Daniel »

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

Código: Selecionar todos

#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 do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Compactar sem salvar o Path

Mensagem por Mario Mesquita »

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 do usuário
Daniel
Usuário Nível 3
Usuário Nível 3
Mensagens: 373
Registrado em: 13 Ago 2003 22:42
Localização: Apucarana - PR

Compactar sem salvar o Path

Mensagem por Daniel »

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
Responder