# ZipFile Replace/Add on demand

**URL:** <https://www.ruby-forum.com/t/zipfile-replace-add-on-demand/65815>\
**Category:** Ruby\
**Created:** [August 21, 2006, 5:17pm UTC](https://www.ruby-forum.com/t/zipfile-replace-add-on-demand/65815 "2006-08-21T17:17:38Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [August 21, 2006, 5:17pm UTC](https://www.ruby-forum.com/t/zipfile-replace-add-on-demand/65815/1 "2006-08-21T17:17:38Z")

</div>

I would like to add new files or replace existing entries as I’m  
looping through a directory (folder.) ZipFile.open will open a zipfile  
if it exists, or create it if does not. I would like to take the  
contents of a folder (fl) and add them to the ZipFile. If the file  
already exists in the ZipFile, I would like to replace it. I’m having  
trouble keeping all the pieces straight in my head. I’m just not  
getting what needs to be done. I’m sure it involves ZipFsFile, but I  
don’t know how or where to gather the info.

Any advice and guidance is appreciated. Thanks, dvn.

Dir.chdir("#{CmsStandards.psDataDrive}#{@refd}#{@prj.run}\reports")  
fl = Dir.entries(’.’)  
Zip::ZipFile.open("#{lpFolder}\#{filename}.zip",  
Zip::ZipFile::CREATE) {  
|zipfile|  
puts “Source files from #{Dir.getwd}\n\n”  
fl.each {|f|  
if File.file?(f)  
puts f  
zipfile.add(f,f)  
end  
}  
} if !fl.empty?
