Revision: 3530
Updated Code
at August 7, 2007 21:28 by rengber
Updated Code
public static Hashtable BuildFileTable(Stream s)
{
Hashtable retVal = new Hashtable();
ZipInputStream zips = new ZipInputStream(s);
ZipEntry ze = zips.GetNextEntry();
while (ze != null)
{
if (ze.IsFile)
{
retVal.Add(ze.Name, GetContentFromZipEntry(ze, zips));
}
ze = zips.GetNextEntry();
}
return retVal;
}
public static string GetContentFromZipEntry(ZipEntry ze, ZipInputStream zips)
{
string retVal = string.Empty;
if (ze.Offset > int.MaxValue || ze.Size > int.MaxValue)
{
throw new ApplicationException("Files larger than 4gb not supported.");
}
Byte[] buffer = new byte[ze.Size];
int numRead = zips.Read(buffer, Convert.ToInt32(ze.Offset), buffer.Length);
MemoryStream ms = new MemoryStream(buffer);
StreamReader sr = new StreamReader(ms);
retVal = sr.ReadToEnd().Trim();
return retVal;
}
Revision: 3529
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at August 7, 2007 21:28 by rengber
Initial Code
public static Hashtable BuildFileTable(Stream s)
{
Hashtable retVal = new Hashtable();
ZipInputStream zips = new ZipInputStream(s);
ZipEntry ze = zips.GetNextEntry();
while (ze != null)
{
if (ze.IsFile)
{
retVal.Add(ze.Name, GetContentFromZipEntry(ze, zips));
}
ze = zips.GetNextEntry();
}
return retVal;
}
public static string GetContentFromZipEntry(ZipEntry ze, ZipInputStream zips)
{
string retVal = string.Empty;
if (ze.Offset > int.MaxValue || ze.Size > int.MaxValue)
{
throw new ApplicationException("Files larger than 4gb not supported.");
}
Byte[] buffer = new byte[ze.Size];
int numRead = zips.Read(buffer, Convert.ToInt32(ze.Offset), buffer.Length);
MemoryStream ms = new MemoryStream(buffer);
StreamReader sr = new StreamReader(ms);
retVal = sr.ReadToEnd().Trim();
return retVal;
}
Initial URL
Initial Description
Initial Title
Building a Hashtable of File Contents from a Zip File Containing Multiple Files and Folders
Initial Tags
Initial Language
C#