# Path problem on Windows: backslash vs forward slash

**URL:** <https://rubytalk.org/t/path-problem-on-windows-backslash-vs-forward-slash/65131>\
**Category:** ruby-talk\
**Created:** [26 March 2012 10:18 UTC](https://rubytalk.org/t/path-problem-on-windows-backslash-vs-forward-slash/65131 "2012-03-26T10:18:06Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![7stud2](https://avatars.discourse-cdn.com/v4/letter/7/9de053/32.png) [@7stud2](https://rubytalk.org/u/7stud2)\
**Post date:** [26 March 2012 10:18 UTC](https://rubytalk.org/t/path-problem-on-windows-backslash-vs-forward-slash/65131/1 "2012-03-26T10:18:06Z")

</div>

I can't figure out why the below code works fine:

#encoding: utf-8  
require 'spreadsheet'

file\_path ='\\\\server100\\Folder1\\Folder2\\oléolé-file.xls'  
Spreadsheet.client\_encoding = 'UTF-8'  
Spreadsheet.open(file\_path) do |book|  
&nbsp;&nbsp;puts "sheets: #{book.worksheets.size}"  
&nbsp;&nbsp;sheet = book.worksheet(0)  
&nbsp;&nbsp;puts "First sheet name: #{[sheet.name](http://sheet.name)}"  
end

But when I tried to do almost the same, just searching the most recent  
file and pass it to the Spreadsheet like that, it doesn't work. Ruby  
replaces back slashes by forward ones what causes a problem on Windows  
box:

#encoding: utf-8  
require 'spreadsheet'

folder = ''\\\\server100\\Folder1\\Folder2'  
pattern = 'oléolé-\*.xls'  
Dir.chdir(folder)  
source\_files = Dir.glob(pattern)  
puts "source files: #{source\_files.inspect}"  
recent\_file = source\_files.max\_by { |f1| File.mtime(f1) }  
Spreadsheet.client\_encoding = 'UTF-8'  
Spreadsheet.open(file\_path) do |book|  
&nbsp;&nbsp;puts "sheets: #{book.worksheets.size}"  
&nbsp;&nbsp;sheet = book.worksheet(0)  
&nbsp;&nbsp;puts "First sheet name: #{[sheet.name](http://sheet.name)}"  
end

The error I get is:

spreadsheet-0.6.8/lib/spreadsheet/excel/reader.rb:1172:in `setup':  
undefined method `read' for false:FalseClass (NoMethodError)

I'm on Windows XP SP3, Ruby 1.9.3.  
Thank you

> **···**
>
> --  
> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).

---

<div class="post-metadata">

**Author:** ![Tim\_Kalinowski](https://avatars.discourse-cdn.com/v4/letter/t/e68b1a/32.png) [@Tim\_Kalinowski](https://rubytalk.org/u/Tim_Kalinowski)\
**Post date:** [26 March 2012 10:31 UTC](https://rubytalk.org/t/path-problem-on-windows-backslash-vs-forward-slash/65131/2 "2012-03-26T10:31:57Z")

</div>

Is it maybe to do with

''\\\\server100\\Folder1\\Folder2'  
should be  
'\\\\server100\\Folder1\\Folder2'

without the double '' at the start

> **···**
>
> On 26/03/2012 9:18 PM, Serguei Cambour wrote:
> 
> > I can't figure out why the below code works fine:
> > 
> > #encoding: utf-8  
> > require 'spreadsheet'
> > 
> > file\_path ='\\\\server100\\Folder1\\Folder2\\oléolé-file.xls'  
> > Spreadsheet.client\_encoding = 'UTF-8'  
> > Spreadsheet.open(file\_path) do |book|  
> > &nbsp;&nbsp;&nbsp;puts "sheets: #{book.worksheets.size}"  
> > &nbsp;&nbsp;&nbsp;sheet = book.worksheet(0)  
> > &nbsp;&nbsp;&nbsp;puts "First sheet name: #{sheet.name}"  
> > end
> > 
> > But when I tried to do almost the same, just searching the most recent  
> > file and pass it to the Spreadsheet like that, it doesn't work. Ruby  
> > replaces back slashes by forward ones what causes a problem on Windows  
> > box:
> > 
> > #encoding: utf-8  
> > require 'spreadsheet'
> > 
> > folder = ''\\\\server100\\Folder1\\Folder2'  
> > pattern = 'oléolé-\*.xls'  
> > Dir.chdir(folder)  
> > source\_files = Dir.glob(pattern)  
> > puts "source files: #{source\_files.inspect}"  
> > recent\_file = source\_files.max\_by { |f1| File.mtime(f1) }  
> > Spreadsheet.client\_encoding = 'UTF-8'  
> > Spreadsheet.open(file\_path) do |book|  
> > &nbsp;&nbsp;&nbsp;puts "sheets: #{book.worksheets.size}"  
> > &nbsp;&nbsp;&nbsp;sheet = book.worksheet(0)  
> > &nbsp;&nbsp;&nbsp;puts "First sheet name: #{sheet.name}"  
> > end
> > 
> > The error I get is:
> > 
> > spreadsheet-0.6.8/lib/spreadsheet/excel/reader.rb:1172:in `setup':  
> > undefined method `read' for false:FalseClass (NoMethodError)
> > 
> > I'm on Windows XP SP3, Ruby 1.9.3.  
> > Thank you

---

<div class="post-metadata">

**Author:** ![7stud2](https://avatars.discourse-cdn.com/v4/letter/7/9de053/32.png) [@7stud2](https://rubytalk.org/u/7stud2)\
**Post date:** [26 March 2012 13:58 UTC](https://rubytalk.org/t/path-problem-on-windows-backslash-vs-forward-slash/65131/3 "2012-03-26T13:58:20Z")

</div>

No, I think there was a posti format problem. Every path is arounded  
with DOUBLE quotes:

folder = "\\\\server100\\Folder1\\Folder2"

> **···**
>
> --  
> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).

---

<div class="post-metadata">

**Author:** ![7stud2](https://avatars.discourse-cdn.com/v4/letter/7/9de053/32.png) [@7stud2](https://rubytalk.org/u/7stud2)\
**Post date:** [27 March 2012 23:22 UTC](https://rubytalk.org/t/path-problem-on-windows-backslash-vs-forward-slash/65131/4 "2012-03-27T23:22:23Z")

</div>

hi Serguei,

&nbsp;&nbsp;can you use File::Separator instead of either forward or backward  
slashes?

&nbsp;&nbsp;- j

> **···**
>
> --  
> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).

---

<div class="post-metadata">

**Author:** ![11142](https://avatars.discourse-cdn.com/v4/letter/1/e0b2c6/32.png) [@11142](https://rubytalk.org/u/11142)\
**Post date:** [26 March 2012 17:51 UTC](https://rubytalk.org/t/path-problem-on-windows-backslash-vs-forward-slash/65131/5 "2012-03-26T17:51:00Z")

</div>

It looks like you're not setting the file\_path variable.

Or, you cut out some part of code before posting here. Please show us  
a complete working (that is, not working 😉 ) example.

-- Matma Rex

---

<div class="post-metadata">

**Author:** ![Steve\_Klabnik](https://avatars.discourse-cdn.com/v4/letter/s/0ea827/32.png) [@Steve\_Klabnik](https://rubytalk.org/u/Steve_Klabnik)\
**Post date:** [27 March 2012 23:46 UTC](https://rubytalk.org/t/path-problem-on-windows-backslash-vs-forward-slash/65131/6 "2012-03-27T23:46:41Z")

</div>

Hate to break it to you, Jake:

[https://github.com/ruby/ruby/blob/trunk/file.c#L5444](https://github.com/ruby/ruby/blob/trunk/file.c#L5444)

> **···**
>
> On Tue, Mar 27, 2012 at 7:22 PM, jake kaiden \<lists@ruby-forum.com\> wrote:
> 
> > hi Serguei,
> > 
> > can you use File::Separator instead of either forward or backward  
> > slashes?
> > 
> > - j
> > 
> > --  
> > Posted via [http://www.ruby-forum.com/\](http://www.ruby-forum.com/%5C).

---

<div class="post-metadata">

**Author:** ![7stud2](https://avatars.discourse-cdn.com/v4/letter/7/9de053/32.png) [@7stud2](https://rubytalk.org/u/7stud2)\
**Post date:** [28 March 2012 09:43 UTC](https://rubytalk.org/t/path-problem-on-windows-backslash-vs-forward-slash/65131/7 "2012-03-28T09:43:23Z")

</div>

Steve Klabnik wrote in post #1053672:

> Hate to break it to you, Jake:
> 
> [https://github.com/ruby/ruby/blob/trunk/file.c#L5444](https://github.com/ruby/ruby/blob/trunk/file.c#L5444)

&nbsp;&nbsp;oops 😉

&nbsp;&nbsp;what a drag...

&nbsp;&nbsp;- j

> **···**
>
> --  
> Posted via [http://www.ruby-forum.com/\](http://www.ruby-forum.com/%5C).
