Statistics
| Revision:

svn-gvsig-desktop / tags / Root_CqCMSDvp / libraries / libCq CMS for java.old / src / org / cresques / io / ZipFileFolder.java @ 1732

History | View | Annotate | Download (1.69 KB)

1 2 luisw
/*
2
 * Created on 03-may-2004
3
 *
4
 * @author "Luis W. Sevilla" <sevilla_lui@gva.es>
5
 */
6
package org.cresques.io;
7
8
import java.io.IOException;
9
import java.io.InputStream;
10
import java.util.Enumeration;
11
import java.util.zip.ZipEntry;
12
import java.util.zip.ZipFile;
13
14
/**
15
 *
16
 *
17
 * @author "Luis W. Sevilla" <sevilla_lui@gva.es>* @author administrador
18
 */
19
20
public class ZipFileFolder extends FileFolder {
21
        String zName = null;
22
        public ZipFile file = null;
23
24
        public ZipFileFolder() {
25
                super();
26
        }
27
28
        /**
29
         * Constructor.
30
         *
31
         * @param fname
32
         */
33
34
        public ZipFileFolder(String fName) throws IOException {
35 7 luisw
                fName = DataSource.normalize(fName);
36 2 luisw
                if (isUrl(fName))
37
                        zName = getZName(fName);
38
                else
39
                        zName = fName;
40
                file = new ZipFile(zName);
41
        }
42
43
        /**
44
         * Analiza un nombre de fichero en formato zip://zipname.zip?file.ext
45
         * @param urlName
46
         */
47
48
        public static boolean isUrl(String name) {
49
                String str = name.substring(0,3);
50
                str.toLowerCase();
51
                if (str.compareTo("zip") == 0)
52
                        return true;
53
                return false;
54
        }
55
56
        private String getZName(String urlName) {
57
                return urlName.substring(6,urlName.indexOf("?"));
58
        }
59
        private String getFName(String urlName) {
60
                return urlName.substring(urlName.indexOf("?")+1);
61
        }
62
63 5 luisw
        public ZipEntry getZipEntry(String fName) throws IOException {
64 2 luisw
                InputStream is = null;
65
                if (isUrl(fName))
66
                        fName = getFName(fName);
67 5 luisw
                return file.getEntry(fName);
68
        }
69
70
        public InputStream getInputStream(String fName) throws IOException {
71
                return file.getInputStream(getZipEntry(fName));
72
        }
73
74
        public InputStream getInputStream(ZipEntry ze) throws IOException {
75 2 luisw
                return file.getInputStream(ze);
76
        }
77
78
        public int count() { return file.size(); }
79
80
        public Enumeration entries() { return file.entries();}
81
}