File getName method behaviour on different OS!


T

Tom

I try this code:
File file = new File(args[0]);
String filename = file.getName();
System.out.println("file name : " + filename);

I run it on windows with these arguments:
/opt/test/test1.txt
c:\windows\test2.txt

I got this:
file name : test1.txt
file name : test2.txt

If I run it on Linux I get this:
file name : test1.txt
file name : c:\windows\test2.txt

Why I don't get the same thing? I know it does not make sense to write
down a path that isn't in the system format. I will use an URL format
to get the real name…

Tom
 
Ad

Advertisements

P

Paul Tomblin

In a previous article, (e-mail address removed) (Tom) said:
I try this code:
File file = new File(args[0]);
String filename = file.getName();
System.out.println("file name : " + filename);

I run it on windows with these arguments:
/opt/test/test1.txt
c:\windows\test2.txt

I got this:
file name : test1.txt
file name : test2.txt

If I run it on Linux I get this:
file name : test1.txt
file name : c:\windows\test2.txt

Why I don't get the same thing? I know it does not make sense to write

Because on Windows, the forward slash and the back slash both work as path
separators, so "/opt/test/test1.txt" would be a file test1.txt in the path
\opt\test on the current drive. On the other hand, Linux allows
backslashes and colons in file names, so "c:\windows\test2.txt" would
indicate a file called "c:\windows\test2.txt" in the current directory.

Here is a part of an "ls" in my home directory:

cfs.zip crichton_faq dft-v330img.bin
cleanfeed-20010715.tgz c:\windows\test2.txt dickhead
clubtop5 datasources disk
 

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

Top