Gambas-it

Gambas3 => Programmazione => Topic aperto da: Golia - 26 Giugno 2014, 10:18:25

Titolo: Comprimere file tar.gz
Inserito da: Golia - 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
Titolo: Re: Comprimere file tar.gz
Inserito da: Devil78 - 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 .
Titolo: Re: Comprimere file tar.gz
Inserito da: Golia - 26 Giugno 2014, 11:49:56
.. ma io così ho usato il comando shell
Titolo: Re: Comprimere file tar.gz
Inserito da: Ceskho - 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
Titolo: Re: Comprimere file tar.gz
Inserito da: Golia - 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
Titolo: Re: RISOLTO Comprimere file tar.gz
Inserito da: Golia - 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
Titolo: Re: Comprimere file tar.gz
Inserito da: Devil78 - 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:
Titolo: Re: Comprimere file tar.gz
Inserito da: Golia - 26 Giugno 2014, 16:20:21
 :ok: grazie
Titolo: Re: Comprimere file tar.gz
Inserito da: kicco - 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:
Titolo: Re: Comprimere file tar.gz
Inserito da: Golia - 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
Titolo: Re: Comprimere file tar.gz
Inserito da: kicco - 28 Giugno 2014, 09:35:10
 :ok:
Scaricato GRAZIE!
 :ciao: