On Jan 8, 10:44 ¨Âí¬ âäåúï®®®À÷éóã®åä÷òïôåº
> Hello,
>
> I am using Ruby 1.8.6-26 on Windows. I have this little test script:
>
> *****************************************************************************************
> system("dir x:\\.\\Radeloff\\Projects\\DATA\\NLCD_2001\\landcover\
> \nlcd_fg11")
>
> serverDirName = "x:/./Radeloff/Projects/DATA_NLCD_2001/landcover/
> nlcd_fg11"
>
> Dir.new(serverDirName).each do | dirEntry |
> if inHere.nil?
> print "Found the directory #{serverDirName} just fine!\n"
> inHere = true
> end
> end
> *****************************************************************************************
>
> The first line succeeds. The Dir.new() line bombs out with
> Errno::EINVAL.Note that the Dir.new() code was taken out of a working
> script that works for millions of files and directories except this
> one. The funky "x:/./..." stuff works all the time. I have looked at
> file permissions on the directory in question and it matches other
> directories in the same place that work fine.
>
> Can anyone tell me what could be wrong here? Could this be a Ruby bug?

It's not being caused by the '.'. I just tried it:

irb(main):002:0> Dir.new("C:/staging").each{ |f| p f }
"."
".."
"ptools-1.1.6"
"windows-pr-0.9.8"
"windows-pr-0.9.8.zip"
=> #<Dir:0x2e37ea0>
irb(main):003:0> Dir.new("C:/./staging").each{ |f| p f }
"."
".."
"ptools-1.1.6"
"windows-pr-0.9.8"
"windows-pr-0.9.8.zip"
=> #<Dir:0x2e32874>

BTW, you can shortcut Dir.new(dir).each with Dir.foreach(dir),
although I don't think it will solve your problem.

Regards,

Dan