2012-01-12 8 views
5

मैं अपने जावा प्रोग्राम में एक टैर फ़ाइल की सभी प्रविष्टियों को सूचीबद्ध करना चाहता हूं। यह कैसे संभव है ? ज़िप फ़ाइलों के लिए, मैं नीचे दिए गए कोड का उपयोग कर सकते हैं:जावा में एक टैर फ़ाइल की सभी प्रविष्टियों को कैसे सूचीबद्ध करें?

ZipFile zf = new ZipFile("ReadZip.zip"); 
Enumeration entries = zf.entries(); 
while (entries.hasMoreElements()) {.....} 

लेकिन मैं टार फ़ाइलों के लिए यकीन नहीं है। क्या कोई मदद कर सकता है? मैं org.apache.tools.tar.*

उत्तर

-3

जावा .jar फ़ाइल पढ़ने के लिए, आप "जार" टूल ... या अनजिप का उपयोग कर सकते हैं। .jar फ़ाइलें। ज़िप प्रारूप में हैं।

* * nix .tar फ़ाइल पढ़ने के लिए, आपको "tar" टूल का उपयोग करने की आवश्यकता है।

यदि आप विंडोज़ पर हैं, तो मैं आपको 7-ज़िप का प्रयास करने के लिए प्रोत्साहित करता हूं।

http://www.7-zip.org/

आप इसे प्रोग्राम के रूप में करना चाहिए, तो मुझे लगता है कि अपाचे चींटी एपीआई "टार": यह एक आसान उपकरण है जो एक असंख्य स्वरूपों ... दोनों .zip सहित (इसलिए भी .jar) और टार पहचानता है जाने का एक अच्छा तरीका है। आप

की जाँच कर सकते हैं .... लिनक्स के लिए

टार फ़ाइल

http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/api/org/apache/tools/tar/TarEntry.html

+0

मूल पोस्ट स्पष्ट रूप से "जावा में" कहा गया है –

2

यह API बहुत उपयोग करने के लिए जावा के अपनेसमान है।

शुरू करने के लिए:

TarInputStream tis = new TarInputStream(new FileInputStream("myfile.tar")); 
try 
{ 
    TarEntry entry; 
    do 
    { 
     entry = tis.getNextEntry(); 

     //Do something with the entry 
    } 
    while (entry != null); 
} 
finally 
{ 
    tis.close(); 
} 

More examples with different APIs are [here][2]. 
12

Apache Commons Compress (http://commons.apache.org/compress/) उपयोग करने के लिए आसान है।

यहाँ एक टार की प्रविष्टियों को भी पढ़ने का एक उदाहरण है:

import java.io.FileInputStream; 

import org.apache.commons.compress.archivers.tar.TarArchiveEntry; 
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; 

public class Taread { 
    public static void main(String[] args) { 
     try { 
      TarArchiveInputStream tarInput = new TarArchiveInputStream(new FileInputStream(args[0])); 
      TarArchiveEntry entry; 
      while (null!=(entry=tarInput.getNextTarEntry())) { 
       System.out.println(entry.getName()); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 
संबंधित मुद्दे