Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VB2008 - Backup eines kopletten Ordners inkl Subdirs - Zip und Dateiname aktuelles Datum

Frage Entwicklung VB for Applications

Mitglied: 69304

69304 (Level 1)

29.09.2008, aktualisiert 01.10.2008, 7704 Aufrufe, 12 Kommentare

Hallo!

Ich bin gerade dabei ein VB-Command-Skript zu schreiben, was folgendes machen soll:

- Vorgegebenes Verzeichnis (inklusive Unterverzeichnisse) als Zip packen
- Dateiname des Zips soll ein vorgegebener String + Datum sein (z.B.: firma_20080929.zip)
- Zip soll an eine bestimmte Stelle kopiert werden (z.B.: C:\Backup\firma_20080929.zip)

An sich kein Problem - aber wie funktionier das mit dem Zip?

Gibts ja irgendwelche Routinen, oder muss ich es über ein externes Programm machen? Eigentlich hat ja Windows XP eine eingebaute Zip-Funktion, kann man die irgedwie nutzen?

mfg,
René.
Mitglied: Wolfsrudel
29.09.2008 um 10:07 Uhr
Du kannst zusätzlich das Programm "GZIP" (http://www.gzip.org/) benutzen.
Hierbei müssen lediglich die enthaltenen .exe-Dateien ("gunzip.exe", "gzip.exe", "zcat.exe") in das Verzeichnis
"C:\WINDOWS\" (%windir%) kopiert/verschoben werden.

Dann kannst Du es per Kommandozeile aufrufen, bzw. in Deinem Script benutzen.
Optionen kannst Du per Manpage beziehungsweise "gzip -h".

Benutze das ganze für ein Windows-Logrotate und es funktioniert super.
Bitte warten ..
Mitglied: 69304
29.09.2008 um 11:18 Uhr
Gut, das mit dem GZip sieht soweit schon mal gut aus!

Aber wie "starte" ich die Anwendung aus VB heraus? Früher ging das glaub ich mit "Shell" oder so...
Bitte warten ..
Mitglied: 69304
29.09.2008 um 12:02 Uhr
OK, ich habs gefunden - aufruf mit Shell().

Aber ich bekomm beim ausführen dauernd:

01.
C:\vb2008\DataBackupLN\DataBackupLN\bin\Release>gzip -c -k -r -9 -v -S .zip C:\lasernet\Huber100 > C:\lasernet\huber.zip 
02.
gzip: C:\lasernet\Huber100: Permission denied
Hat da wer eine Idee?
Bitte warten ..
Mitglied: Wolfsrudel
29.09.2008 um 12:34 Uhr
Wie die Meldung schon besagt, da fehlen Berechtigungen... als was/wer (lokaler Admin, User, whatever) startest Du das Script? Welche Berechtigungen sind für den Ordner "Huber100" vergeben?
Bitte warten ..
Mitglied: 69304
29.09.2008 um 12:49 Uhr
Starten tue ich es als Domainen-User. Hab mal die Berechtigungen für den Ordner an alle User auf Vollzugriff geändert.

Egal, ob ich das Skript starte oder aus der CMD direkt gzip.exe - es kommt immer die Fehlermeldung, dass ich keine Berechtigung hätte (s.o.)
Bitte warten ..
Mitglied: 69304
29.09.2008 um 13:12 Uhr
Habs jetzt gelöst!

Statt GZip verwende ich nun 7Zip. Da brauch ich nur die 7za.exe, mehr nicht.

Aufrufen tue ich es wie folgt:

In VB2008:
01.
ExecuteBackup = "7za a -tzip -r " & ZipOutput & "\" & ZipDateiname & " " & ZipInput & "\*"
In CMD:
01.
C:\>7za a -tzip -r C:\lasernet\huber.zip C:\lasernet\Huber100\*
a = Add to Archiv
-tzip = Erweiterung als Zip, nicht als 7z
-r = Rekrusives Verhalten auf Ordner
%1 = Output-Archiv
%2 = Ordner (Mit * für alle Dateien)

Danke!
Bitte warten ..
Mitglied: bastla
29.09.2008 um 15:34 Uhr
Noch als Ergänzung: Nur mit Bordmitteln (ab XP) sollte es auch gehen: Natively zipping Files in VB.net

Grüße
bastla
Bitte warten ..
Mitglied: 69304
29.09.2008 um 16:49 Uhr
Hallo bastla!

Das hört sich natürlich auch nicht schlecht an - aber...

"Requires reference to shell32.dll in %windir%\system32"

...ähm wie mache ich das?
Bitte warten ..
Mitglied: bastla
29.09.2008 um 17:36 Uhr
Hallo rbrixel!

Über "Projekt / Verweis hinzufügen... / Durchsuchen" bzw besser: "Projekt / Verweis hinzufügen... / COM / Microsoft Shell Controls And Automation"

Grüße
bastla
Bitte warten ..
Mitglied: 69304
01.10.2008 um 09:55 Uhr
Also, habs jetzt soweit integriert. Läuft - ABER!

Es wird zwar eine Zip-Datei erzeugt, auch mit richtigem Dateiname, aber dieses Zip ist leer...

Die Funktion rufe ich wie folgt auf:

01.
ZipFile(ZipInput, ZipDateiname)
Wenn ich mir es ausgeben lasse per Breakpoint, erhalte ich:

01.
ZipFile(C:\lasernet\Huber100, C:\lasernet\huber100_20081001.zip)
Hat jemand die Funktion schon erfolgreich umsetzen können, oder jemand noch nen Tipp?

mfg,
René.
Bitte warten ..
Mitglied: bastla
01.10.2008 um 16:57 Uhr
Hallo rbrixel!

Inzwischen habe ich es selbst getestet, und bei mir funktioniert es so für den Ordner "C:\lasernet\Huber100":
01.
	Private Sub CreateZipFile(ByVal Filename As String) 
02.
		Dim Encoder As New System.Text.ASCIIEncoding 
03.
		Dim Header As String = "PK" & Chr(5) & Chr(6) 
04.
		Header = Header.PadRight(22, Chr(0)) 
05.
		My.Computer.FileSystem.WriteAllBytes(Filename, Encoder.GetBytes(Header), False) 
06.
	End Sub 
07.
	Private Sub ZipFile(ByVal Input As String, ByVal Filename As String) 
08.
		Dim Shell As New Shell32.Shell 
09.
		CreateZipFile(Filename) 
10.
		Shell.NameSpace(Filename).CopyHere(Input) 
11.
	End Sub 
12.
 
13.
	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
14.
		Dim ZipInput As String= "C:\lasernet\Huber100" 
15.
		Dim ZipDateiname As String = "C:\lasernet\huber100_20081001.zip" 
16.
		ZipFile(ZipInput, ZipDateiname) 
17.
		MsgBox("Datei " & ZipDateiname & " erstellt.") 
18.
	End Sub
Grüße
bastla
Bitte warten ..
Mitglied: 0belixx
16.06.2011 um 10:55 Uhr
Hallo Leute

ich muss das mal wieder aufleben lassen.

Zu dem vorherigen habe ich mal ne Frage, hat jemand eine Idee wie man mehrere belibige Ordner "zippen" kann?

Danke 0belixx
Bitte warten ..
Ähnliche Inhalte
Monitoring
gelöst Nagios Plugin Datum in Dateiname abfragen (2)

Frage von itazubii zum Thema Monitoring ...

Batch & Shell
gelöst Ordner Umbenennen +heutiges Datum (12)

Frage von ahsenden zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Batch & Shell
Umbenennen entpackter Dateien nach Dateinamen der rar- zip-Datei

Frage von windows-nutzer zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (18)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
IP Adressen - Modem - Switch - Accesspoint (17)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
DNS ins mehreren Subnetzen (13)

Frage von joerg zum Thema Windows Netzwerk ...