# Change in Dir.glob behavior on Windows between 1.8.5 and 1.8

**URL:** <https://www.ruby-forum.com/t/change-in-dir-glob-behavior-on-windows-between-1-8-5-and-1-8/109688>\
**Category:** Ruby\
**Created:** [July 17, 2007, 10:18pm UTC](https://www.ruby-forum.com/t/change-in-dir-glob-behavior-on-windows-between-1-8-5-and-1-8/109688 "2007-07-17T22:18:30Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yuri\_Klubakov](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/85f322/32.png) [@Yuri\_Klubakov](https://www.ruby-forum.com/u/Yuri_Klubakov)\
**Post date:** [July 17, 2007, 10:18pm UTC](https://www.ruby-forum.com/t/change-in-dir-glob-behavior-on-windows-between-1-8-5-and-1-8/109688/1 "2007-07-17T22:18:30Z")

</div>

I’ve checked ruby-talk emails regarding Dir.glob and File.join but  
didn’t see this one reported before.

C:\> ruby --version  
ruby 1.8.5 (2006-12-25 patchlevel 12) [i386-mswin32]

C:\> irb  
irb(main):001:0\> Dir.glob(File.join(ENV[‘USERPROFILE’], ‘\*.rnd’))  
=\> [C:\Documents and Settings\yura/putty.rnd"]

C:\> ruby --version  
ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]

C:\> irb  
irb(main):001:0\> Dir.glob(File.join(ENV[‘USERPROFILE’], ‘\*.rnd’))  
=\> []

---

<div class="post-metadata">

**Author:** ![Yuri\_Klubakov](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/85f322/32.png) [@Yuri\_Klubakov](https://www.ruby-forum.com/u/Yuri_Klubakov)\
**Post date:** [July 18, 2007, 10:31am UTC](https://www.ruby-forum.com/t/change-in-dir-glob-behavior-on-windows-between-1-8-5-and-1-8/109688/2 "2007-07-18T10:31:02Z")

</div>

> C:\> ruby --version  
> ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]
> 
> C:\> irb  
> irb(main):001:0\> Dir.glob(File.join(ENV[‘USERPROFILE’], ‘\*.rnd’))  
> =\> []

I could reproduce this on my system too.

Could it be that 1.8.6 Dir.glob gets upset on the spaces in  
ENV[‘USERPROFILE’]?

Ronald

---

<div class="post-metadata">

**Author:** ![Yuri\_Klubakov](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/85f322/32.png) [@Yuri\_Klubakov](https://www.ruby-forum.com/u/Yuri_Klubakov)\
**Post date:** [July 18, 2007, 6:20pm UTC](https://www.ruby-forum.com/t/change-in-dir-glob-behavior-on-windows-between-1-8-5-and-1-8/109688/3 "2007-07-18T18:20:26Z")

</div>

Hi,

At Wed, 18 Jul 2007 17:30:17 +0900,  
Ronald F. wrote in [ruby-talk:260407]:

> Could it be that 1.8.6 Dir.glob gets upset on the spaces in  
> ENV[‘USERPROFILE’]?

No, backslash is a special character.

---

<div class="post-metadata">

**Author:** ![Yuri\_Klubakov](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/85f322/32.png) [@Yuri\_Klubakov](https://www.ruby-forum.com/u/Yuri_Klubakov)\
**Post date:** [July 19, 2007, 12:53am UTC](https://www.ruby-forum.com/t/change-in-dir-glob-behavior-on-windows-between-1-8-5-and-1-8/109688/4 "2007-07-19T00:53:52Z")

</div>

On 7/18/07, Nobuyoshi N. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> At Wed, 18 Jul 2007 17:30:17 +0900,  
> Ronald F. wrote in [ruby-talk:260407]:
> 
> > Could it be that 1.8.6 Dir.glob gets upset on the spaces in  
> > ENV[‘USERPROFILE’]?
> 
> No, backslash is a special character.

So, is it a “fix” or a “bug”?

What is now a portable way to do the following (does not work on  
Windows any more):

Dir.glob(File.join(ENV[‘HOME’], ‘\*.dat’))

---

<div class="post-metadata">

**Author:** ![Yuri\_Klubakov](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/85f322/32.png) [@Yuri\_Klubakov](https://www.ruby-forum.com/u/Yuri_Klubakov)\
**Post date:** [July 18, 2007, 6:15pm UTC](https://www.ruby-forum.com/t/change-in-dir-glob-behavior-on-windows-between-1-8-5-and-1-8/109688/5 "2007-07-18T18:15:25Z")

</div>

On 7/18/07, Ronald F. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > C:\> ruby --version  
> > ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]
> > 
> > C:\> irb  
> > irb(main):001:0\> Dir.glob(File.join(ENV[‘USERPROFILE’], ‘\*.rnd’))  
> > =\> []
> 
> I could reproduce this on my system too.
> 
> Could it be that 1.8.6 Dir.glob gets upset on the spaces in  
> ENV[‘USERPROFILE’]?

No, it’s File:ALT\_SEPARATOR ():

C:\> ruby --version  
ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]

C:\> irb  
irb(main):001:0\> Dir.glob(File.join(ENV[‘USERPROFILE’],  
‘_.rnd’).gsub(File::ALT\_SEPARATOR, File::SEPARATOR))  
=\> [C:/Documents and Settings/yura/putty.rnd"]  
irb(main):002:0\> Dir.glob(File.join(ENV[‘USERPROFILE’],  
'_.rnd’).gsub(File::SEPARATOR, File::ALT\_SEPARATOR))  
=\> []

---

<div class="post-metadata">

**Author:** ![Yuri\_Klubakov](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/85f322/32.png) [@Yuri\_Klubakov](https://www.ruby-forum.com/u/Yuri_Klubakov)\
**Post date:** [July 19, 2007, 5:24am UTC](https://www.ruby-forum.com/t/change-in-dir-glob-behavior-on-windows-between-1-8-5-and-1-8/109688/6 "2007-07-19T05:24:21Z")

</div>

Hi,

At Thu, 19 Jul 2007 07:52:50 +0900,  
Yuri Klubakov wrote in [ruby-talk:260611]:

> > > Could it be that 1.8.6 Dir.glob gets upset on the spaces in  
> > > ENV[‘USERPROFILE’]?
> > 
> > No, backslash is a special character.
> 
> So, is it a “fix” or a “bug”?

a fix.

> What is now a portable way to do the following (does not work on  
> Windows any more):
> 
> Dir.glob(File.join(ENV[‘HOME’], ‘\*.dat’))

Dir.glob(File.expand\_path(’\*.dat’, ENV[‘HOME’]))

particularly for ENV[‘HOME’]:

Dir.glob(File.expand\_path(’~/\*.dat’))
