Autore Topic: Comprimere file tar.gz  (Letto 1345 volte)

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Comprimere file tar.gz
« il: 26 Giugno 2014, 10:18:25 »
Ciao a tutti
Ho la necessità di fare un programmino che mi comprima dei file di una determinata cartella, il primo passo è questo:

Codice: gambas [Seleziona]
Dim openmyfile As Process
Dim destinazione As String
Dim origine As String

origine = User.Home &/ "MieFoto3/*.*"
destinazione = User.Home &/ "gino.tar.gz"
openmyfile = Shell "tar zcvf " & destinazione & " " & origine


Però succede che i file vengono salvati con il percorso, cioè dentro il pacchetto i file sono in: "/home/pierino/MieFoto3".
Anche scompattando da terminale, "tar zxvf prova.tar.gz" mi va a creare nella home una nuova home con tutti i percorsi dove va a mettere il file.
Io avrei il bisogno di di salvare solo i file, e di scomprimerli in una determinata cartella.
grazie per l'aiuto

Offline Devil78

  • Gambero
  • **
  • Post: 61
  • L'intelligente ha molti limiti, il demente No!
    • Mostra profilo
Re: Comprimere file tar.gz
« Risposta #1 il: 26 Giugno 2014, 11:21:03 »
Una soluzione potrebbe essere quella di demandare l'incarico della compressione agli strumenti disponibili in linux usando il comando shell. Incapsuli i percorsi in una stringa che seguira il comando shell .

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Comprimere file tar.gz
« Risposta #2 il: 26 Giugno 2014, 11:49:56 »
.. ma io così ho usato il comando shell

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Comprimere file tar.gz
« Risposta #3 il: 26 Giugno 2014, 11:57:29 »
Ciao a tutti
Ho la necessità di fare un programmino che mi comprima dei file di una determinata cartella, il primo passo è questo:

Codice: gambas [Seleziona]
Dim openmyfile As Process
Dim destinazione As String
Dim origine As String

origine = User.Home &/ "MieFoto3/*.*"
destinazione = User.Home &/ "gino.tar.gz"
openmyfile = Shell "tar zcvf " & destinazione & " " & origine


Però succede che i file vengono salvati con il percorso, cioè dentro il pacchetto i file sono in: "/home/pierino/MieFoto3".
Anche scompattando da terminale, "tar zxvf prova.tar.gz" mi va a creare nella home una nuova home con tutti i percorsi dove va a mettere il file.
Io avrei il bisogno di di salvare solo i file, e di scomprimerli in una determinata cartella.
grazie per l'aiuto

Codice: gambas [Seleziona]
Dim openmyfile As Process
Dim destinazione As String
Dim origine As String

origine = User.Home &/ "MieFoto3/*.*"
destinazione = User.Home
nome_file = "gino.tar.gz"
openmyfile = Shell "cd " & destinazione & ";tar zcvf " & nome_file & " " & origine

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Comprimere file tar.gz
« Risposta #4 il: 26 Giugno 2014, 12:10:32 »
Ciao Cesko!
Codice: gambas [Seleziona]
Dim openmyfile As Process  
Dim destinazione As String 
Dim origine As String   
Dim nome_file As String   

origine = User.Home &/ "MieFoto3/*.*" 
destinazione = User.Home
nome_file = "gino.tar.gz" 
openmyfile = Shell "cd " & destinazione & ";tar zcvf " & nome_file & " " & origine 

no, continua a scrivere tutto il percorso.
ad ogni modo a me basterebbe di estrarla in una determinata cartella, è che così va a scrivere e creare tutte le cartelle che ha memorizzato

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: RISOLTO Comprimere file tar.gz
« Risposta #5 il: 26 Giugno 2014, 13:22:50 »
è giusto cesko, bastava cambiare le opzioni del tar.
Come al solito andando a vedere nei sorgenti di gambas, in questo caso quello dell'ide si trova tutto. Nell'ide "progetto/crea/pacchetto sorgenti" c'è la soluzione.

per comprimere:

Codice: gambas [Seleziona]

Dim openmyfile As Process    
Dim origine As String    
Dim nome_file As String    
Dim filedacomprimere As String


filedacomprimere = "*.*"
origine = User.Home &/ "prova/"    
nome_file = User.Home &/ "gino.tar.gz"  
openmyfile = Shell "cd " & origine & "; tar cfvhz " & nome_file & " " & filedacomprimere


per scomprimere:
Codice: gambas [Seleziona]
Dim openmyfile As Process 
Dim destinazione As String
Dim nome_file As String

  destinazione = User.Home &/ "prova/"
  nome_file = User.Home &/ "gino.tar.gz" 
openmyfile = Shell "cd " & destinazione & ";tar zxvf " & nome_file


grazie a tutti
« Ultima modifica: 26 Giugno 2014, 13:26:35 da Golia »

Offline Devil78

  • Gambero
  • **
  • Post: 61
  • L'intelligente ha molti limiti, il demente No!
    • Mostra profilo
Re: Comprimere file tar.gz
« Risposta #6 il: 26 Giugno 2014, 15:43:44 »
Ciao Golia. Essendo con il cell. mi era sfuggito il comando shell nel cidice.
Un buon metodo per creare una gui che sfrutti un comando della shell è quello
di esportare le man pages relative a quel comando in un file più
comodo da consultare e sviluppare il proprio software seguendo le istruzioni
in esso riportate.   :ok:

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Comprimere file tar.gz
« Risposta #7 il: 26 Giugno 2014, 16:20:21 »
 :ok: grazie
« Ultima modifica: 26 Giugno 2014, 20:48:20 da Golia »

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: Comprimere file tar.gz
« Risposta #8 il: 27 Giugno 2014, 16:13:35 »
Citazione
Come al solito andando a vedere nei sorgenti di gambas, in questo caso quello dell'ide si trova tutto

Non sono riuscito a trovare il sorgente Gambas dell'IDE. Dov'è?

 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Comprimere file tar.gz
« Risposta #9 il: 27 Giugno 2014, 20:55:17 »
bella domanda.. non lo trovo più.. ho solo il mio che mi ero salvato, provo allegartelo.

N.B. è troppo pesante per allegarlo nel sito del forum, prova a scaricarlo quà: https://drive.google.com/file/d/0B_A-xGpO_nKNMzZMYjFHV3hsdTA/edit?usp=sharing

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: Comprimere file tar.gz
« Risposta #10 il: 28 Giugno 2014, 09:35:10 »
 :ok:
Scaricato GRAZIE!
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)