Issue #6851 has been updated by luislavena (Luis Lavena).

Status changed from Assigned to Feedback
Assignee changed from h.shirosaki (Hiroshi Shirosaki) to usa (Usaku NAKAMURA)

=begin
h.shirosaki (Hiroshi Shirosaki) wrote:
> The behavior is same (not raises exception) as before r36668.
> 
> 

I can confirm File.stat('C:/...') did not raised exception even before Hiroshi's change.

 C:\Users\Luis>ruby -v -e "p File.stat('C:/...')"
 ruby 2.0.0dev (2012-08-07 trunk 36647) [i386-mingw32]
 #<File::Stat dev=0x2, ino=0, mode=040755, nlink=1, uid=0, gid=0, rdev=0x2, size=0, blksize=nil, blocks=nil, atime=1969-12-31 21:00:00 -0300, mtime=1969-12-31 21:00:00 -0300, ctime=1969-12-31 21:00:00 -0300>

The changes to use (({GetFileAttributesExW})) are not the cause.

Since this was introduced in r34205 and r34216, perhaps Usa can better describe (({...})) behavior.

Reassigning for feedback.
=end
----------------------------------------
Bug #6851: Result of File.stat("c:/...") is different from 1.9.3
https://bugs.ruby-lang.org/issues/6851#change-28773

Author: phasis68 (Heesob Park)
Status: Feedback
Priority: Normal
Assignee: usa (Usaku NAKAMURA)
Category: core
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-08-10 trunk 36676) [i386-mswin32_100]


What is the correct result of File.stat("c:/...") on Windows?

File#stat for path like "c:/..." succeeds on trunk 36676.

C:\>ruby -ve 'p File.stat("c:/...")'
ruby 2.0.0dev (2012-08-10 trunk 36676) [i386-mswin32_100]
#<File::Stat dev=0x2, ino=0, mode=040755, nlink=1, uid=0, gid=0, rdev=0x2, size=
0, blksize=nil, blocks=nil, atime=2012-08-10 14:53:27 +0900, mtime=2012-08-10 09
:40:33 +0900, ctime=2011-04-08 19:43:44 +0900>

C:\>ruby -ve 'p File.stat("c:/....")'
ruby 2.0.0dev (2012-08-10 trunk 36676) [i386-mswin32_100]
#<File::Stat dev=0x2, ino=0, mode=040755, nlink=1, uid=0, gid=0, rdev=0x2, size=
0, blksize=nil, blocks=nil, atime=2012-08-10 14:53:32 +0900, mtime=2012-08-10 09
:40:33 +0900, ctime=2011-04-08 19:43:44 +0900>

C:\>ruby -ve 'p File.stat("c:/..../..")'
ruby 2.0.0dev (2012-08-10 trunk 36676) [i386-mswin32_100]
#<File::Stat dev=0x2, ino=0, mode=040755, nlink=1, uid=0, gid=0, rdev=0x2, size=
0, blksize=nil, blocks=nil, atime=2012-08-10 14:53:45 +0900, mtime=2012-08-10 09
:40:33 +0900, ctime=2011-04-08 19:43:44 +0900>

But, File#stat raises exception on Ruby 1.9.3.

C:\Ruby193\bin>ruby -ve 'p File.stat("c:/...")
ruby 1.9.3p194 (2012-04-20 revision 35410) [i386-mingw32]
-e:1:in `stat': Invalid argument - c:/... (Errno::EINVAL)
        from -e:1:in `<main>'

C:\Ruby193\bin>ruby -ve 'p File.stat("c:/....")
ruby 1.9.3p194 (2012-04-20 revision 35410) [i386-mingw32]
-e:1:in `stat': No such file or directory - c:/.... (Errno::ENOENT)
        from -e:1:in `<main>'



-- 
http://bugs.ruby-lang.org/