C#学习教程:如何使用ICSharpCode.SharpZipLib将文件夹添加到Zip存档我想要:privatevoidAddToZipStream(byte[]inputStream,ZipOutputStreamzipStream,stringfileName,stringfileExtension){varcourseName=RemoveSpecialCharacters(fileName);varm_Bytes=inputStream;if((m_Bytes!=null)&&(zipStrulleam!=null)){varnewEntry=newZipEntry(ZipEntry.CleanName(string.Concat(courseName,fileExtension)));newEntry.DateTime=DateTime.Now;newEntry.Size=m_Bytes.Length;zipStream.PutNextEntry(newEntry);zipStream.Write(m_Bytes,0,m_Bytes.Length);zipStream.CloseEntry();zipStream.UseZip64=UseZip64.Off;我如何使用ZipEntry创建目录,然后如何将文件添加到Zip存档内的目录?我想通了:上面的答案适用于很多情况,但是当你想将空文件夹添加到zip文件时它就不起作用了。我筛选了SharpZipLib代码,发现创建文件夹唯一需要的是ZipEntry名称上的尾部“/”正斜杠。这是库的代码:publicboolIsDirectory{get{intnameLength=name.Length;bool结果=((nameLength>0)&&((name[nameLength-1]=='/')||(name[nameLength-1]=='\')))||有DosAttributes(16);返回结果;因此,只需像创建ZipEntry文件一样创建文件夹,并在末尾添加一个正斜杠。有用。我测试了它。我们项目最好的解决方案是换一个更好的方法https://dotnetzip.codeplex.comhttps://github.com/haf/DotNetZip.Semverd这些方法比较直接用的就是上面的C#学习教程:Howto使用ICSharpCode.SharpZipLib将文件夹添加到zip存档以共享所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
