Página 1 de 1
Compactar sem salvar o Path
Enviado: 16 Out 2017 17:52
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
Compactar sem salvar o Path
Enviado: 17 Out 2017 08:36
por Toledo
Rubens, é só tirar o parâmetro STOREPATH do comando COMPRESS.
Abraços,
Compactar sem salvar o Path
Enviado: 28 Nov 2017 20:12
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.
Compactar sem salvar o Path
Enviado: 28 Nov 2017 22:18
por JoséQuintas
Eu nem sei como se salva PATH junto com arquivos....
Olharam exemplos da minigui ou do Harbour?
Compactar sem salvar o Path
Enviado: 29 Nov 2017 08:32
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.
Compactar sem salvar o Path
Enviado: 29 Nov 2017 11:35
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
Compactar sem salvar o Path
Enviado: 30 Nov 2017 13:56
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.
Compactar sem salvar o Path
Enviado: 01 Dez 2017 15:24
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