Issue #8340 has been updated by naruse (Yui NARUSE). Status changed from Open to Third Party's Issue Report this to rubyzip's tracker. https://github.com/aussiegeek/rubyzip ---------------------------------------- Bug #8340: rubyzip does not save time of zipped files https://bugs.ruby-lang.org/issues/8340#change-38960 Author: Thilo.Opaterny (Thilo Opaterny) Status: Third Party's Issue Priority: Normal Assignee: Category: Target version: ruby -v: ruby 2.0.0p0 (2013-02-24) [x64-mingw32] rubyzip (0.9.9) Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN I wrote a little test ---------------------- require 'zip/zip' zipName = "test.zip" zipFile = Zip::ZipFile.open( zipName, Zip::ZipFile::CREATE ) file = File.open( "save.rb", "rb") puts time = Zip::DOSTime.at( file.mtime ) zipEntry = Zip::ZipEntry.new( zipName, file.path, "", "", 0, 0, Zip::ZipEntry::DEFLATED, 0, time ) // I want to keep the time outputStream = zipFile.get_output_stream( zipEntry ); outputStream << file.read file.close outputStream.close zipFile.close() Zip::ZipFile.foreach( zipName ){ |zipEntry| p zipEntry.name p zipEntry.time } ------------------ it returns 2013-04-08 21:05:20 +0200 "save.rb" 2013-04-27 22:11:36 +0200 obvious it does not keep the time. I can fix the problem if I change line 34 of c:\win\Ruby200x64\lib\ruby\gems\2.0.0\gems\rubyzip-0.9.9\lib\zip\zip_output_stream.rb into if entryname.kind_of?(ZipEntry) or entryname.kind_of?( ZipStreamableStream ) but I feel that this is not the right way to do it, because there are at least 4 other kind_of?(ZipEntry) in that lib c:\win\Ruby200x64\lib\ruby\gems\2.0.0\gems\rubyzip-0.9.9\lib\zip\zip_streamable_stream.rb tells mee that ZipStreamableStream < DelegateClass(ZipEntry) so I think the problem should be fixed in there. But how? -- http://bugs.ruby-lang.org/