2009-12-05 4 views
0

J'ai un fichier zip nommé test.zip qui contient un répertoire nommé facture. Dans le répertoire de la facture, il y a des documents avec des noms différents. Je voudrais trouver un document spécifique nommé summary.txt qui se trouve dans le répertoire de la facture.Comment trouver une entrée spécifique dans un répertoire compressé à l'aide de la gemme rubyzip?

Je suis en mesure d'obtenir une poignée à test.zip en utilisant les éléments suivants:

zip = Zip::ZipFile.open("/path/to/test.zip") 

mais quand j'utilise

zip.find_entry("summary.txt") 

je reçois nul. D'autre part, si summary.txt ne se trouve pas dans le répertoire factures, mais plutôt à la racine du fichier zip lui-même, la méthode find_entry décrite ci-dessus semble fonctionner.

Il semble que je dois d'une certaine manière naviguer dans le répertoire des factures avant de chercher le fichier summary.txt.

Est-ce correct? Si oui, comment puis-je le faire? Si non, ce que je fais mal.

Répondre

1

Vous devez spécifier le chemin complet du fichier:

zip.find_entry 'invoices/summary.txt' 
+0

Dois-je spécifier le chemin absolu du répertoire, ou peut-il être parent? – rswolff

+0

Il doit s'agir du chemin absolu, sans barre oblique (/). –

Questions connexes