Dir

Dir.foreach("c:/wes/photos/Bike/*.JPG") {|x| puts "Got#{x}" }

This does not seem to work on my windows xp machine? Should it? I am
trying to get a list of files with the .JPG extension.

If I take the *.JPG out, I get a list of all of the files in that
directory? What am I doing wrong? I just want the .JPG's.

Thanks in advance,

wes

Dir.foreach("c:/wes/photos/Bike/") { |x| p "got #{x}" if x[x.length-3, x.length]=='JPG' }

I'm sure there's a better way, but this should do the trick

Kev

···

wes.monk@gmail.com wrote:

Dir.foreach("c:/wes/photos/Bike/*.JPG") {|x| puts "Got#{x}" }

This does not seem to work on my windows xp machine? Should it? I am
trying to get a list of files with the .JPG extension.

If I take the *.JPG out, I get a list of all of the files in that
directory? What am I doing wrong? I just want the .JPG's.

Thanks in advance,

wes

You could do:
Dir["c:/wes/photos/Bike/*.JPG"].each { |x| puts "Got#{x}" }

change JPG to [JPGjpg] to be ignore the case.

c

Hi --

You could do:
Dir["c:/wes/photos/Bike/*.JPG"].each { |x| puts "Got#{x}" }

change JPG to [JPGjpg] to be ignore the case.

You'd actually need to do:

   *.[Jj][Pp][Gg]

With *.[JPGjpg] you'll only match files like file.J and file.p.

You could also do:

   *.{jpg,JPG}

if you're sure that those are the only two (i.e., nothing like JpG).

David

···

On Mon, 21 Nov 2005, ces.fci@gmail.com wrote:

--
David A. Black
dblack@wobblini.net

Hi,

At Mon, 21 Nov 2005 13:27:10 +0900,
David A. Black wrote in [ruby-talk:166730]:

···

On Mon, 21 Nov 2005, ces.fci@gmail.com wrote:

> You could do:
> Dir["c:/wes/photos/Bike/*.JPG"].each { |x| puts "Got#{x}" }

Or

  Dir.glob("c:/wes/photos/Bike/*.JPG") { |x| puts "Got#{x}" }

--
Nobu Nakada

nobuyoshi nakada wrote:

Hi,

At Mon, 21 Nov 2005 13:27:10 +0900,
David A. Black wrote in [ruby-talk:166730]:

You could do:
Dir["c:/wes/photos/Bike/*.JPG"].each { |x| puts "Got#{x}" }

Or

  Dir.glob("c:/wes/photos/Bike/*.JPG") { |x| puts "Got#{x}" }

On a Windows box IMHO that should read

Dir.glob("c:\\wes\\photos\\Bike\\*.JPG") { |x| puts "Got#{x}" }

Or - a bit more portable:

Dir[File.join("c:", "wes", "photos", "Bike", "*.jpg")]

Kind regards

    robert

···

On Mon, 21 Nov 2005, ces.fci@gmail.com wrote:

Hi,

At Mon, 21 Nov 2005 18:37:24 +0900,
Robert Klemme wrote in [ruby-talk:166758]:

> Dir.glob("c:/wes/photos/Bike/*.JPG") { |x| puts "Got#{x}" }

On a Windows box IMHO that should read

Dir.glob("c:\\wes\\photos\\Bike\\*.JPG") { |x| puts "Got#{x}" }

Ruby uses forward-slashes on all platforms.

Or - a bit more portable:

Dir[File.join("c:", "wes", "photos", "Bike", "*.jpg")]

It yields "c:/wes/photos/Bike/*.JPG" even on Windows.

···

--
Nobu Nakada