Creating directory and zipping it

hi,
can anyone help me.

I want to create a folder, create another file of .url type and save the
.url file in the folder and zip the folder. I am sending the code which
I have written and I am getting following error. “No such file or
directory - InstitutionShortcut”

dir_name = Dir.new(“InstitutionShortcut”)
file_path =
“#{RAILS_ROOT}/public/test/#{dir_name}/Isabel-#{@institutions.institution_name}.url”
f = File.new(file_path, “w”)
content = “”
content += “[InternetShortcut]\n”
content += “URL=http://192.168.1.233:5555/index.jsp?”
content += “passcode=“[email protected]+”\n”
content += “IconFile=http://192.168.1.233:5555/favicon.ico\n”
content += “IconIndex=1\n”
content += “Modified=30B027EB835EC40198”
f.write( content )
f.close
dir_name.zip

can anyone help me

Thanks in advance

http://rake.rubyforge.org/svn/trunk/lib/rake/packagetask.rb

Has some code for packing things up.

Matt

Matt T. wrote:

http://rake.rubyforge.org/svn/trunk/lib/rake/packagetask.rb

Has some code for packing things up.

Matt

hi Matt,
I m new to ruby, can you tell me how to

  1. create directory using ruby.
  2. Then create a file.
  3. Put the newly created file in the new directory.
  4. zip the directory.

Raju

  1. Create a directory
    d = Dir.mkdir(‘test’)
    #creates a directory named ‘test’
  2. Create a file
    File.open(‘test/test.txt’, ‘w’) { |f| puts ‘Hello World’ }
    #creates a new file named test.txt inside the directory ‘test’ and
    writes ‘Hello World’ into the file
  3. This is done in the above code by creating the new file inside the
    directory itself
  4. Zip the directory
    %x{zip -r test.zip test}
    #This executes the zip command of the underlying operating system
    (I’m using Linux) and creates a zip file named test.zip containing the
    directory ‘test’ (the -r flag makes the zipping recursive)
    #If you can’t use that (on Windows), try rubyzip.sourceforge.net/ -
    I have not used it but I found it via Google search

Hope that helps

Regards

Andrew T.
[email protected]
082 415 8283
skype: andrewtimberlake

“I have never let my schooling interfere with my education.”
–Mark Twain

and also Andrew I want to overwrite the directory if the newly created
directory has the same name of the existing directory.

thanks Andrew,
The code which you sent is working fine, I am also using a Linux
machine, But the it is not ziping the folder. Is there anything else I
can use.

Raju

If you run the zip code in irb, what output do you get?
I get the following:
Irb(main):001:0> %x{zip -r test.zip test}
=> " adding: test/ (stored 0%)\n adding: test/test.txt (stored 0%)\n"

Andrew T.
[email protected]
082 415 8283
skype: andrewtimberlake

“I have never let my schooling interfere with my education.”
–Mark Twain

Raju

By overwrite the directory, I assume you want to delete the contents of
the directory if it exists, you can do that as follows:
if File.exists?(‘test’) && File.directory?(‘test’)
Dir[‘test/**/*’].reverse.each { |path| if File.file?(path) then
File.delete(path) else Dir.rmdir(path) end }
else
Dir.mkdir(‘test’)
end

Andrew T.
[email protected]
082 415 8283
skype: andrewtimberlake

“I have never let my schooling interfere with my education.”
–Mark Twain