|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: May 2008
Messaggi: 273
|
Selez. Cartella e Salvare file in *7z
Salve Ragazzi, ero intenzionato nel fare un progammino in VB.net, per comprimere dei file per backup in 7z o altro.
Dato che sto alle prime armi con il VB, chiedo a voi di integrare questo problemino...ho visto un po' in giro ma non ho trovato nulla. ![]() ![]() Vorrei Aprire la cartella da comprimere....Visualizzando il percorso nel Text box, salvare il file in uno specificato percorso,sempre visualizzato nel text box, e comprimere con il comando...unica cosa funzionante... ![]() Posto un immagine per rendere l'idea.Grazie.!!!! ![]()
__________________
SCHEDA MADRE* ASROCK EXTREME4GEN3-PROCIO*I7 2600K 4.8GHZ SKVIDEO*GIGABYTE GTX 470 OVERCLOCK 1280MB RAM* 8GB G.SKILL 1866MHZ 10-10-10-27 2N ALIMENTATORE* CORSAIR GS 700 COOLING* NOCTUA D14 HD*SSD Corsair Force Series 3 120GB 2.5" Lettura 550MB/s Scrittura 510MB/s SATA3 CSSD ![]() ![]() EDIT:LE PAZZIE MI RIESCONO SEMPRE BENE.E' CON LE COSE NORMALI CHE HO QUALCHE DIFFICOLTA' |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
FolderBrowserDialog ha la proprietà SelectedPath
OpenFileDialog ha la proprietà FileName Una semplice ricerca sulla documentazione online avrebbe risolto i tuoi problemi ![]() |
![]() |
![]() |
![]() |
#3 | |
Member
Iscritto dal: May 2008
Messaggi: 273
|
Quote:
![]() ![]()
__________________
SCHEDA MADRE* ASROCK EXTREME4GEN3-PROCIO*I7 2600K 4.8GHZ SKVIDEO*GIGABYTE GTX 470 OVERCLOCK 1280MB RAM* 8GB G.SKILL 1866MHZ 10-10-10-27 2N ALIMENTATORE* CORSAIR GS 700 COOLING* NOCTUA D14 HD*SSD Corsair Force Series 3 120GB 2.5" Lettura 550MB/s Scrittura 510MB/s SATA3 CSSD ![]() ![]() EDIT:LE PAZZIE MI RIESCONO SEMPRE BENE.E' CON LE COSE NORMALI CHE HO QUALCHE DIFFICOLTA' Ultima modifica di brubaker : 15-10-2014 alle 12:16. |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
|
![]() |
![]() |
![]() |
#5 | |
Member
Iscritto dal: May 2008
Messaggi: 273
|
Quote:
![]()
__________________
SCHEDA MADRE* ASROCK EXTREME4GEN3-PROCIO*I7 2600K 4.8GHZ SKVIDEO*GIGABYTE GTX 470 OVERCLOCK 1280MB RAM* 8GB G.SKILL 1866MHZ 10-10-10-27 2N ALIMENTATORE* CORSAIR GS 700 COOLING* NOCTUA D14 HD*SSD Corsair Force Series 3 120GB 2.5" Lettura 550MB/s Scrittura 510MB/s SATA3 CSSD ![]() ![]() EDIT:LE PAZZIE MI RIESCONO SEMPRE BENE.E' CON LE COSE NORMALI CHE HO QUALCHE DIFFICOLTA' |
|
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: May 2008
Messaggi: 273
|
Un altro Professore Scomparso !!!!!
![]() ![]()
__________________
SCHEDA MADRE* ASROCK EXTREME4GEN3-PROCIO*I7 2600K 4.8GHZ SKVIDEO*GIGABYTE GTX 470 OVERCLOCK 1280MB RAM* 8GB G.SKILL 1866MHZ 10-10-10-27 2N ALIMENTATORE* CORSAIR GS 700 COOLING* NOCTUA D14 HD*SSD Corsair Force Series 3 120GB 2.5" Lettura 550MB/s Scrittura 510MB/s SATA3 CSSD ![]() ![]() EDIT:LE PAZZIE MI RIESCONO SEMPRE BENE.E' CON LE COSE NORMALI CHE HO QUALCHE DIFFICOLTA' |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Devi salvarti path di origine e di destinazione su delle variabili di istanza della tua classe così che le puoi usarle anche in altri metodi. |
|
![]() |
![]() |
![]() |
#8 | |
Member
Iscritto dal: May 2008
Messaggi: 273
|
Quote:
![]() ![]() In questo momento mi viene il dubbio..io non ne sono capace , perche' non ho studiato ste cose..ma tu che sai tutte queste teorie da applicare per far funzionare il metodo...saresti anche in grado di farmi sto cavolo di esempio e farmi funzionare il metodo..o vogliamo continuare a fare il professore e lo studente!!!???? ![]() ![]() ![]()
__________________
SCHEDA MADRE* ASROCK EXTREME4GEN3-PROCIO*I7 2600K 4.8GHZ SKVIDEO*GIGABYTE GTX 470 OVERCLOCK 1280MB RAM* 8GB G.SKILL 1866MHZ 10-10-10-27 2N ALIMENTATORE* CORSAIR GS 700 COOLING* NOCTUA D14 HD*SSD Corsair Force Series 3 120GB 2.5" Lettura 550MB/s Scrittura 510MB/s SATA3 CSSD ![]() ![]() EDIT:LE PAZZIE MI RIESCONO SEMPRE BENE.E' CON LE COSE NORMALI CHE HO QUALCHE DIFFICOLTA' |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Codice:
Dim sourceDir as String Dim zipFile as String ... sourceDir = fld.SelectedPath ... zipFile = SaveFileDialog1.FileName ... ...Shell(String.Format("...{0} {1}", zipFile, sourceDir)) |
![]() |
![]() |
![]() |
#10 |
Member
Iscritto dal: May 2008
Messaggi: 273
|
Mhaaa che'..funziona sempre e solo in manuale....non mi comprime la cartella selezionata..e' logicamente vuoto il file di uscita....
per me il problema sta qua'.."zipFile".... dato che uso il codice sorgente 7z.exe... ![]() ![]() ![]() Codice:
Public Class Form1 Dim sourceDir As String Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click Using fld As New FolderBrowserDialog() If fld.ShowDialog() = Windows.Forms.DialogResult.OK _ Then MessageBox.Show("Selected" & fld.SelectedPath) TextBox1.Text = fld.SelectedPath sourceDir = fld.SelectedPath End If End Using End Sub Dim zipFile As String Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click SaveFileDialog1.Filter = "7z Files (*.7z*)|*.7z" If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK _ Then My.Computer.FileSystem.WriteAllText (SaveFileDialog1.FileName, "*.7z", True) MessageBox.Show("Selected" & SaveFileDialog1.FileName) TextBox2.Text = SaveFileDialog1.FileName zipFile = SaveFileDialog1.FileName End If End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Dim id As Integer = Shell(String.Format("C:\POPO\InstallFiles\7z.exe a -t7z -m9=LZMA2 -aoa {0} {1}", zipFile, sourceDir)) Console.WriteLine(id) End Sub End Class
__________________
SCHEDA MADRE* ASROCK EXTREME4GEN3-PROCIO*I7 2600K 4.8GHZ SKVIDEO*GIGABYTE GTX 470 OVERCLOCK 1280MB RAM* 8GB G.SKILL 1866MHZ 10-10-10-27 2N ALIMENTATORE* CORSAIR GS 700 COOLING* NOCTUA D14 HD*SSD Corsair Force Series 3 120GB 2.5" Lettura 550MB/s Scrittura 510MB/s SATA3 CSSD ![]() ![]() EDIT:LE PAZZIE MI RIESCONO SEMPRE BENE.E' CON LE COSE NORMALI CHE HO QUALCHE DIFFICOLTA' Ultima modifica di brubaker : 17-10-2014 alle 17:35. |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Ma sei sicuro che il comando che esegui sia corretto? Se prendi la stringa e la esegui all'interno della shell dei comandi (cmd.exe) funziona?
Infine come lo esegui? Magari c'è qualche problema nel metodo Shell. |
![]() |
![]() |
![]() |
#12 |
Member
Iscritto dal: May 2008
Messaggi: 273
|
In manuale funziona...
![]() Codice:
Dim id As Integer = Shell(String.Format("C:\POPO\InstallFiles\arc.exe a -ep1 -r -ed -lc512 -ld1600m -mt1 -w./ -msrep+delta+lzma:a1:mfbt4:d158m:fb273:mc1000:lc8 C:\POPO\Setup.bin C:\POPO\PIPPO", zipFile, sourceDir)) Codice:
Dim id As Integer = Shell(String.Format("C:\POPO\InstallFiles\7z.exe a -t7z -m9=LZMA2 -aoa {1} {0} ", zipFile, sourceDir))
__________________
SCHEDA MADRE* ASROCK EXTREME4GEN3-PROCIO*I7 2600K 4.8GHZ SKVIDEO*GIGABYTE GTX 470 OVERCLOCK 1280MB RAM* 8GB G.SKILL 1866MHZ 10-10-10-27 2N ALIMENTATORE* CORSAIR GS 700 COOLING* NOCTUA D14 HD*SSD Corsair Force Series 3 120GB 2.5" Lettura 550MB/s Scrittura 510MB/s SATA3 CSSD ![]() ![]() EDIT:LE PAZZIE MI RIESCONO SEMPRE BENE.E' CON LE COSE NORMALI CHE HO QUALCHE DIFFICOLTA' Ultima modifica di brubaker : 17-10-2014 alle 20:28. |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Domanda stupida, ma hai provato in debug a vedere che stringa viene fuori?
Nell'ultimo codice che hai postato hai invertito i segnaposto dovrebbe darti errore. Comunque prova il debug di visual studio, così capisci cosa sta succedendo. |
![]() |
![]() |
![]() |
#14 |
Member
Iscritto dal: May 2008
Messaggi: 273
|
Nell'ultimo codice postato non mi da nessun errore...provato anche ad invertire ....{1} {0}.. avvio il codice...seleziono la cartella....salvo il (nome)file in una posizione qualsiasi....ZIPPO...per una frazione di secondo in basso mi esce la schermata dos...come se funzionasse...ma penso che richiami solo il source 7z.exe..poi basta.
![]() ![]() ![]()
__________________
SCHEDA MADRE* ASROCK EXTREME4GEN3-PROCIO*I7 2600K 4.8GHZ SKVIDEO*GIGABYTE GTX 470 OVERCLOCK 1280MB RAM* 8GB G.SKILL 1866MHZ 10-10-10-27 2N ALIMENTATORE* CORSAIR GS 700 COOLING* NOCTUA D14 HD*SSD Corsair Force Series 3 120GB 2.5" Lettura 550MB/s Scrittura 510MB/s SATA3 CSSD ![]() ![]() EDIT:LE PAZZIE MI RIESCONO SEMPRE BENE.E' CON LE COSE NORMALI CHE HO QUALCHE DIFFICOLTA' |
![]() |
![]() |
![]() |
#15 |
Member
Iscritto dal: May 2008
Messaggi: 273
|
Stringa esatta "{0} {0}", sourceDir, zipFile))" Funziona...
![]() Adesso prima di chiudere vorrei capire...data l'ignoranza il perchè...funziona {0} {0}... e con "{1} {0}"..."{0} {1}"...."{2} {1}"...."{1} {2}"..etc non funziona o mo dava errore..il concetto dei segna posti qual'eee???? ![]()
__________________
SCHEDA MADRE* ASROCK EXTREME4GEN3-PROCIO*I7 2600K 4.8GHZ SKVIDEO*GIGABYTE GTX 470 OVERCLOCK 1280MB RAM* 8GB G.SKILL 1866MHZ 10-10-10-27 2N ALIMENTATORE* CORSAIR GS 700 COOLING* NOCTUA D14 HD*SSD Corsair Force Series 3 120GB 2.5" Lettura 550MB/s Scrittura 510MB/s SATA3 CSSD ![]() ![]() EDIT:LE PAZZIE MI RIESCONO SEMPRE BENE.E' CON LE COSE NORMALI CHE HO QUALCHE DIFFICOLTA' |
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
Ma hai provato ad eseguire il programma passo passo in debug? È il modo migliore per imparare cosa significa quello che si è scritto e gli effetti che produce. |
|
![]() |
![]() |
![]() |
#17 |
Member
Iscritto dal: May 2008
Messaggi: 273
|
Si lavoro in debug..con "{0} {1}"....."{1} {0}". non mi da nessuno errore, ma non succede nulla, quando avvio l'appl. con ...."{0} {0}" seleziono la cartella da comprimere che si trova sul desktop..seleziono il file d'uscita in data.7z..faccio partire il tutto..comprime la cartella..OK ma non me lo salva in una cartella scelta ..ma nel desktop dove si trova la cartella che ho compresso.
La questione è semplice non riesco a spostare il file compresso in una posizione a scelta ...come se "SaveFileDialog1" non funzionasse a dovere infatti mi crea un il file Data.7z nella cartella scelta, ma di solo 1Kbye danneggiato. Apro la cartella da comprimere, "FolderBrowserDialog ()" che si seleziona nel "TextBox1" Si apre automaticamente "SaveFileDialog1" dove salvo il file in uscita in una cartella qualsiasi es "Data.7z" ![]() Clicco sul pulsante "SALVA" e con i segnaposto {0} {0} mi salva il file zippato "BKP" sul Desktop e non nella cartella selezionata "Data.7z" che la crea ma solo di 1kb. ![]() Con il segnaposto {0} {1} o {1} {0},non succede nulla nessuno errore.. In poche parole non salva la cartella compressa nel percorso scelto. Codice:
Public Class Form1 Dim sourceDir As String Dim zipFile As String Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click Using fld As New FolderBrowserDialog() If fld.ShowDialog() = Windows.Forms.DialogResult.OK _ Then MessageBox.Show("Selected" & fld.SelectedPath) TextBox1.Text = fld.SelectedPath sourceDir = fld.SelectedPath End If SaveFileDialog1.FileName = "Data.7z" If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK _ Then My.Computer.FileSystem.WriteAllText(SaveFileDialog1.FileName, "*.7z", True) MessageBox.Show("Selected" & SaveFileDialog1.FileName) TextBox2.Text = SaveFileDialog1.FileName zipFile = SaveFileDialog1.FileName End If End Using End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Dim id As Integer = Shell(String.Format("InstallFiles\7z.exe a -t7z -m9=LZMA2 -aoa {0} {0}", sourceDir, zipFile)) Console.WriteLine(id) End Sub End Class ![]() ![]() ![]()
__________________
SCHEDA MADRE* ASROCK EXTREME4GEN3-PROCIO*I7 2600K 4.8GHZ SKVIDEO*GIGABYTE GTX 470 OVERCLOCK 1280MB RAM* 8GB G.SKILL 1866MHZ 10-10-10-27 2N ALIMENTATORE* CORSAIR GS 700 COOLING* NOCTUA D14 HD*SSD Corsair Force Series 3 120GB 2.5" Lettura 550MB/s Scrittura 510MB/s SATA3 CSSD ![]() ![]() EDIT:LE PAZZIE MI RIESCONO SEMPRE BENE.E' CON LE COSE NORMALI CHE HO QUALCHE DIFFICOLTA' |
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Prima di dare le colpe ad un linguaggio di programmazione, hai provato in debug a procedere passo passo? A me sembra che tu stia sbagliando l'ordine dei parametri
|
![]() |
![]() |
![]() |
#19 |
Member
Iscritto dal: May 2008
Messaggi: 273
|
Ho fatto tutte le prove che dici..qua e' un problema di compilazione, manca qualcosa...ma per chi non ha studiato ste cose..che ci metto le patate.
![]() il problema è che, seleziona e comprime la cartella, e che non salva il file nella cartella desiderata, gia' il fatto che se faccio partire l'appl. senza selezionare nulla e premo solo su "SAVE" mi parte la linea di comando di 7.z... e mi crea una cartella zippata con dentro il percorso del proggetto "C:\Users\ALEX\Desktop\THE EVIL\pippo\pippo\bin\Debug".. Vorrei almeno eliminare questo bug, in qualche parametro da inserire nel codice, in modo che se non seleziono nulla,nel tasto Open, logicamente cliccando sul tasto Save, non deve succedere nulla. ![]() ![]()
__________________
SCHEDA MADRE* ASROCK EXTREME4GEN3-PROCIO*I7 2600K 4.8GHZ SKVIDEO*GIGABYTE GTX 470 OVERCLOCK 1280MB RAM* 8GB G.SKILL 1866MHZ 10-10-10-27 2N ALIMENTATORE* CORSAIR GS 700 COOLING* NOCTUA D14 HD*SSD Corsair Force Series 3 120GB 2.5" Lettura 550MB/s Scrittura 510MB/s SATA3 CSSD ![]() ![]() EDIT:LE PAZZIE MI RIESCONO SEMPRE BENE.E' CON LE COSE NORMALI CHE HO QUALCHE DIFFICOLTA' |
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
A me questo codice (7z.exe in $Path) funziona come previsto, comprime sourceDir nel file zipFile specificato, ovviamente il path completo di zipFile deve esistere:
Codice:
Dim id As Integer = Shell(String.Format("7z.exe a -t7z -m9=LZMA2 -aoa {0} {1}", zipFile, sourceDir)) |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:36.