![]() |
|
|
|||||||
![]() |
Java - File getName method behaviour on different OS! |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
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 Tom |
|
|
|
|
#2 |
|
Posts: n/a
|
In a previous article, (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 -- Paul Tomblin <>, not speaking for anybody "The question of whether a computer can think is no more interesting than the question of whether a submarine can swim ." E. W. Dijkstra |
|