Simply open a file using a variable

D

Dox Xer

Hi,

i´m totally new to ruby and have a tiny little problem.

I´d like to open a file located in a specific directory on a specific
drive with spaces in the path (Vista).

Example:
"f:\abc def\new\this is my file.txt"

This seems to work fine:
File.open("f:\\abc def\\new\\this is my file.txt")

But in case i want to use a variable to do this like:
path = "f:\\abc def\\new\\this is my file.txt"
File.open(path)

I always get this error:
G:/ruby/scripts/test.rb:35:in `initialize': Invalid argument - "f:\abc
def\new\this is my file.txt" (Errno::EINVAL)
from G:/mp3val-0.1.8_with_frontend-0.1.1-bin-win32/test.rb:35:in
`open'
from G:/mp3val-0.1.8_with_frontend-0.1.1-bin-win32/test.rb:35:in
`<main>'


What do i do wrong or what do i need to add to make this working?

Thanks
Dox
 
J

Jesús Gabriel y Galán

Hi,

i=B4m totally new to ruby and have a tiny little problem.

I=B4d like to open a file located in a specific directory on a specific
drive with spaces in the path (Vista).

Example:
"f:\abc def\new\this is my file.txt"

This seems to work fine:
File.open("f:\\abc def\\new\\this is my file.txt")

But in case i want to use a variable to do this like:
path =3D "f:\\abc def\\new\\this is my file.txt"
File.open(path)

I always get this error:
G:/ruby/scripts/test.rb:35:in `initialize': Invalid argument - "f:\abc
def\new\this is my file.txt" (Errno::EINVAL)
=A0 =A0 =A0 =A0from G:/mp3val-0.1.8_with_frontend-0.1.1-bin-win32/test.rb= :35:in
`open'
=A0 =A0 =A0 =A0from G:/mp3val-0.1.8_with_frontend-0.1.1-bin-win32/test.rb= :35:in
`<main>'


What do i do wrong or what do i need to add to make this working?

I can't test it now in Windows but I seem to recall that you can use
forward slashes even in Windows:

path =3D "f:/abc/def/new/this is my file.txt"

Can you try that?

Jesus.
 
D

Dox Xer

Jesús Gabriel y Galán said:
I can't test it now in Windows but I seem to recall that you can use
forward slashes even in Windows:

path = "f:/abc/def/new/this is my file.txt"

Can you try that?

Jesus.


Hi Jesus and thanks for answering.

i tried this, but the result is the same. Only the slashes in the error
message are now different accordingly to the changed path variable.

I already tried a lot of different options like changing the slashed,
adding additionally escaping "\" for each slash and for the blanks as
well, but the result is always the same.

I can open the file when i enter the path directly (also with
"\"-slashes), but using a variable in between leeds to this error.

btw: i made a smaller mistake while posting my example. The filename is
"p1 - this is my file.txt". I don't know, if the "-" is also a special
character, so i escaped this one as well...no luck.
 
D

Dox Xer

Hi Jesus and thanks for answering.

i tried this, but the result is the same. Only the slashes in the error
message are now different accordingly to the changed path variable.

I already tried a lot of different options like changing the slashed,
adding additionally escaping "\" for each slash and for the blanks as
well, but the result is always the same.

I can open the file when i enter the path directly (also with
"\"-slashes), but using a variable in between leeds to this error.

btw: i made a smaller mistake while posting my example. The filename is
"p1 - this is my file.txt". I don't know, if the "-" is also a special
character, so i escaped this one as well...no luck.



Ok, got it. This is slightly confusing. I hope, the rest of Ruby makes
more sense.

This works:
file = File.open("G:\\abc Test\\test - Doc.txt")

and

s = "G:\\abc\ Test\\test - Doc.txt"
File.open(s)

In case a variable should be used, the space in the name of the
directory must be escaped. The one in the filename is not important.
Strange strange.....
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,051
Latest member
CarleyMcCr

Latest Threads

Top