Wie überschreiben Sie vorhandene Dateien mit Rubyzip lib

7

Ich versuche, eine Datei mit mehreren Dateien zu entpacken, die im Zielverzeichnis vorhanden sind oder nicht. Es scheint, dass das Standardverhalten eine Ausnahme auslöst, wenn die Datei bereits existiert.

Wie entzippe ich in ein Verzeichnis und überschreibe einfach vorhandene Dateien?

Hier ist mein Code:

%Vor%     
digitalsanctum 08.06.2009, 17:44
quelle

4 Antworten

12

Es sieht so aus, dass extract () einen optionalen Block (onExistsProc) benutzt, der es erlaubt, zu bestimmen, was mit der Datei geschehen soll, wenn sie bereits existiert - true zurück zum Überschreiben, false, um eine Ausnahme auszulösen.

Wenn Sie einfach alle vorhandenen Dateien überschreiben möchten, können Sie Folgendes tun:

%Vor%

Wenn Sie eine komplexere Logik verwenden möchten, um bestimmte Einträge anders zu behandeln, können Sie Folgendes tun:

%Vor%

BEARBEITEN: feste Antwort - wie von Ingmar Hamer hervorgehoben, hat meine ursprüngliche Antwort den Block als Parameter übergeben, wenn es mit der obigen Syntax erwartet wird.

    
Greg Campbell 08.06.2009, 20:26
quelle
14

Nur um anderen die Probleme zu ersparen:

Der Auszug-Befehl in Antwort 2 ist falsch:

Der dritte (proc) Parameter wird mit einem kaufmännischen Und angegeben, was bedeutet, dass ruby ​​erwartet, dass er sich in {} -Brackets nach dem Methodenaufruf wie folgt befindet:

%Vor%

oder (wenn Sie komplexere Logik benötigen)

%Vor%

Wenn Sie das in Post # 2 angegebene Beispiel verwenden, erhalten Sie eine Fehlermeldung "ungültige Argumente (3 für 2)" ...

    
Ingmar Hamer 09.10.2009 10:29
quelle
1

Bearbeiten: Modifizierter Code zum Entfernen der Zieldatei, wenn sie vorher existiert.

%Vor%

Bearbeiten: Geänderter Code, um das Zielverzeichnis zu entfernen, falls es vorher existiert.

%Vor%

Hier ist der Originalcode von Mark Needham :

%Vor%     
bernie 08.06.2009 19:17
quelle
0

Dieser Link hier bietet einen guten Zweck Beispiel, das ich überprüft habe, funktioniert. Es muss nur eine Anforderung "fileutils" hinzugefügt werden.

    
yonkeltron 12.04.2010 15:14
quelle

Tags und Links