B
Brian Corrigan
Folks,
Hey Folks,
I've written a script to generate a list of all files on a machine,
then zip the results. Im going to use it to audit some file servers.
The problem is that the ZIP compression/decrompression isn't working,
but its not what you might think. The script completes, but seems to
not actually write anything.
Here is a short version that only looks at the C:/temp drive. You can
change this at the top.
---Start Code Here--
require 'find'
require 'csv'
require 'zlib'
tempfile = "temp.csv"
outfile = "out.zip"
dirname = "c:/temp"
# Prepare comma-delimited file for writing
CSV::Writer.generate(File.open(tempfile,"w+"), ',') do |csv|
Find.find(dirname) do |f|
csv << [File.dirname(f), File.basename(f), File.mtime(f).to_s]
end
end
# TEST: View the tempfile to make sure it has data.
# This prints nothing, but the file DOES have info after
# the script completes. Maybe the file isn't written at this point?
p IO.read(tempfile)
Zlib::GzipWriter.open(outfile) do |gz|
gz << File.open(tempfile).read
end
Zlib::GzipReader.open(outfile) {|gz|
print gz.read
}
# The ZIP file can't be extracted with WINZIP. No idea why, but since
# I'll be using another RUBY script for extraction, im not sure that I
care.
Hey Folks,
I've written a script to generate a list of all files on a machine,
then zip the results. Im going to use it to audit some file servers.
The problem is that the ZIP compression/decrompression isn't working,
but its not what you might think. The script completes, but seems to
not actually write anything.
Here is a short version that only looks at the C:/temp drive. You can
change this at the top.
---Start Code Here--
require 'find'
require 'csv'
require 'zlib'
tempfile = "temp.csv"
outfile = "out.zip"
dirname = "c:/temp"
# Prepare comma-delimited file for writing
CSV::Writer.generate(File.open(tempfile,"w+"), ',') do |csv|
Find.find(dirname) do |f|
csv << [File.dirname(f), File.basename(f), File.mtime(f).to_s]
end
end
# TEST: View the tempfile to make sure it has data.
# This prints nothing, but the file DOES have info after
# the script completes. Maybe the file isn't written at this point?
p IO.read(tempfile)
Zlib::GzipWriter.open(outfile) do |gz|
gz << File.open(tempfile).read
end
Zlib::GzipReader.open(outfile) {|gz|
print gz.read
}
# The ZIP file can't be extracted with WINZIP. No idea why, but since
# I'll be using another RUBY script for extraction, im not sure that I
care.