Simon Kröger
2/1/2007 7:31:00 PM
jay schrieb:
> Hi,
>
> i was hoping for a little bit of direction on a project i'm starting
> that will look to scan a directory structure full of jpgs, and populate
> a db table with various meta data (i.e. filename, path, maybe some exif
> data if i can do that easily).
>
> it's clear that i'll need find.find(), 'mysql' and a few other nifties.
> it's more about how to get the data into the db.
>
> would you loop through the find and create a hash for each file, then a
> hash of hashes for all of them, before mapping it into the db?
>
> any comments or pointers gratefully recieved.
> thx
>
> jay
Hi jay,
this isn't optimal but should get you started:
----------------------------------------------------------------------
require 'mysql'
db = Mysql::new("localhost", "user", "pw", "testdb")
db.query("CREATE TABLE IF NOT EXISTS jpgs (name text, size int)")
Dir['/path/to/images/**/*.jpg'].each do |file|
db.query("INSERT INTO jpgs VALUES ('#{file}', #{File.size(file)})")
end
db.close
----------------------------------------------------------------------
if my memory doesn't play tricks on me it should be *way* faster
to use a single insert statement with lots of data - have fun!
cheers
Simon