0

I'm trying to write the contents of a zip file to a text file. My code right now only writes the first file. (This is using SharpZipLib)

ZipInputStream zip = new ZipInputStream(File.OpenRead(AddonFile));
ZipEntry item;

while ((item = zip.GetNextEntry()) != null)
{
    FileStream fs1 = new FileStream(
        @"resource\texts\"+ Path.GetFileName(AddonFile)+".text",
        FileMode.OpenOrCreate, FileAccess.Write);
    StreamWriter writer = new StreamWriter(fs1);
    writer.Write(item.Name);
    writer.Close();
}
Blorgbeard
  • 101,031
  • 48
  • 228
  • 272
Liam G
  • 3
  • 2

1 Answers1

0

You are creating a new file each time you process a zip file entry, open the file outside the while loop and close it after the loop, like so:

ZipInputStream zip = new ZipInputStream(File.OpenRead(AddonFile));
ZipEntry item;

FileStream fs1 = new FileStream(
    @"resource\texts\"+ Path.GetFileName(AddonFile)+".text",
    FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter writer = new StreamWriter(fs1);

while ((item = zip.GetNextEntry()) != null)
{
    writer.Write(item.Name);
}
writer.Close();
Mark Davis
  • 26
  • 3