private static FonteFeicaoShapeStream CarregarShapesDoZip(ZipFile zip)
        {
            FonteFeicaoShapeStream fonte = new FonteFeicaoShapeStream();

            foreach (ZipEntry zen in zip)
            {
                if (Path.GetExtension(zen.Name).ToLower() == ".shp")
                {
                    string   nome = Path.GetFileNameWithoutExtension(zen.Name).ToLower();
                    ZipEntry shx  = zip.GetEntry(nome + ".shx");
                    ZipEntry dbf  = zip.GetEntry(nome + ".dbf");

                    if (shx != null && dbf != null && !fonte.ExisteFeicao(nome))
                    {
                        Stream sShp = zip.GetInputStream(zen);
                        Stream sShx = zip.GetInputStream(shx);
                        Stream sDbf = zip.GetInputStream(dbf);

                        byte[] bShp = new byte[zen.Size];
                        byte[] bShx = new byte[shx.Size];
                        byte[] bDbf = new byte[dbf.Size];

                        sShp.Read(bShp, 0, bShp.Length);
                        sShx.Read(bShx, 0, bShx.Length);
                        sDbf.Read(bDbf, 0, bDbf.Length);

                        fonte.AdicionarClasseFeicao(nome, new MemoryStream(bShp), new MemoryStream(bShx), new MemoryStream(bDbf));
                    }
                }
            }

            return(fonte);
        }