2016-03-14 68 views
0

我试图将zip文件的内容写入文本文件。 我的代码现在只写入第一个文件。 (这是使用SharpZipLib将zip内容写入文本文件

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(); 
} 
+0

您正在使用'FileMode.OpenOrCreate',使用'FileMode.Append' –

回答

0

您正在创建一个新的文件,每次处理一个zip文件条目时,打开文件while循环外循环后关闭它,就像这样:

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();