dt1234
Goto Top

Dateien mit gleichem Namen mehrmals per Packer archivieren

Ich weiß, dass ich das früher schon einmal gemacht habe. Ich weiß leider aber nicht mehr, wie lange das her ist und welches Packformat dies unterstützte. Daher meine Frage an Euch.

Ich möchte mehrere Dateien immer wieder neu packen. Da sich diese in der Zwischenzeit geändert haben können, sollen die im Archiv enthaltene Versionen nicht ersetzt werden, sondern die neuen Dateien hinzugefügt werden.
Es sollte also eine (!) gepackte Datei sein, welche mehrere Dateien mit gleichem Dateinamen enthält.

Ich bin kurz die Command-Line Liste von RAR und die GUI von WinRaR und 7Zip durchgegangen - habe aber nichts gefunden.

Content-ID: 289320

Url: https://administrator.de/contentid/289320

Ausgedruckt am: 08.11.2024 um 21:11 Uhr

emeriks
emeriks 25.11.2015 um 13:00:24 Uhr
Goto Top
Hi,
jede Version in einen eigenen Ordner legen und dann diese Ordnerstruktur packen?

E.
DT1234
DT1234 25.11.2015 um 14:43:56 Uhr
Goto Top
Das ist nicht die Lösung, die ich suche.
Außerdem hätte man dann Duplikate (wenn man für jede Sicherung einen neuen Ordner im Archiv anlegen würde).
Und falls man das Archiv alle 10 Minuten aktualisieren würde, dann hätte man viel Spaß dabei herauszufinden, wieviele verschiedene Versionen es von Datei x in den letzten 3 Tagen gab.
ITvortex
ITvortex 25.11.2015 um 15:47:49 Uhr
Goto Top
Hallo,

wie wäre es wenn du dir da einfach ein Batch Script bastelst?

http://www.dotnetperls.com/7-zip-examples

Mit 7zip sollte das doch möglich sein...

Liebe Grüße
ITvortex
Pjordorf
Pjordorf 25.11.2015 um 17:52:46 Uhr
Goto Top
Hallo,

Zitat von @DT1234:
Ich weiß, dass ich das früher schon einmal gemacht habe
Glaub eher das es sich so nicht verhielt. Etwas fehlt hier....

Es sollte also eine (!) gepackte Datei sein, welche mehrere Dateien mit gleichem Dateinamen enthält.
Wenn schon Dateisysteme dies nicht können, wie soll es dann in einer gepackten Datei gehen? Oder meinst du vielleicht Versionierung und Co.? Da ist dann aber immer ein System im Hintergrund welches die tatsächlichen Dateien umbenennt und dir die ursprünglichen Klarschriftnamen anzeigt und eine liste hat wo welche Datei tatsächlich zu finden ist. Warum sollen also Packprogramme es anders handhaben als es die Dateisysteme können denn ein Packprogramm legt die Dateien ja auch nur in einen anderen Ordner ab - nämlich die gpackte Datei - ist auch nur ein Ordner (Container).

Such mal nach Versionierung....

Gruß,
Peter
DT1234
DT1234 26.11.2015 um 11:12:52 Uhr
Goto Top
Zitat von @Pjordorf:

Hallo,

Zitat von @DT1234:
Ich weiß, dass ich das früher schon einmal gemacht habe
Glaub eher das es sich so nicht verhielt. Etwas fehlt hier....
Mit TAR war das anscheinend möglich (aber wohl nur ganze Verzeichnisse). Aber TAR hatte ich nicht verwendet.

Ich weiß auch, dass ich mit der in Delphi eingebauten Zip-Komponente dies machen kann. Aber ich weiß nicht, ob das der ZIP-Spezifikation entspricht oder das nur ein Bug ist. Daher meine Suche hier.
Und ich bin mir ziemlich sicher, dass dies durch ein Packformat unterstützt wurde - aber es gab & gibt so viele (zip, rar, arj, arc, lha, ...) und da hatte ich erhofft, dass sich hier jemand findet, der sich daran erinnert, da ich überhaupt nicht mehr weiß, ob das vor 5, 10, 20 .. Jahren war.

Und noch Versionierung in Packern hatte ich schon gesucht, aber nichts gefunden, daher meine Frage.
114757
Lösung 114757 26.11.2015 aktualisiert um 16:54:04 Uhr
Goto Top
Zitat von @Pjordorf:
Wenn schon Dateisysteme dies nicht können, wie soll es dann in einer gepackten Datei gehen?
@Pjordorf Bullshit ...klar geht das. ZIPs haben intern eine andere Verwaltung der Dateien ...

Der Beweis: Powershell is your friend ...
# Asemblies laden (benötigt mindestens .NET 4.5 und Powershell 3.0)
Add-Type -AssemblyName System.IO.Compression
Add-Type -AssemblyName System.IO.Compression.FileSystem

# Pfade
$zipfile = "C:\ordner\myfile.zip"  
$file = 'C:\ordner\datei.txt'  

# ZIP-Datei erstellen
$zip = [System.IO.Compression.ZipFile]::Open($zipfile,[System.IO.Compression.ZipArchiveMode]::Update)
# Dateien zur ZIP-Datei hinzufügen
[void][System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($zip,$file,([System.IO.Path]::GetFileName($file)))
# Ressourcen freigeben
$zip.Dispose()
Fügt bei jedem Aufruf eine Datei mit dem selben Namen hinzu, ohne das eine vorhandene überschrieben wird...

Gruß jodel32
DT1234
DT1234 26.11.2015 um 15:35:14 Uhr
Goto Top
Danke!
Dies bestätigt, dass das Verhalten von Delphi keine Abnormalität ist.

Ich glaube zwar, dass ich das damals mit den Standard command line Befehlen des Packers realisiert hatte, aber jetzt weiß ich zumindestens, dass ich weiter bei ZIP suchen sollte.