开发者

Java's relative path in class File

here is my code:

File file1 = new File("");
System.out.println(file1.exists()); // why the output is false?
System.out.println(file1.getAbsolutePath());

// assume that my current path is "d:/xxx/yyy"
File file2 = new File(".");
System.开发者_JAVA技巧out.println(file2.getPath());   // i want to get ""
                                       // but i actually get ".", 
                                       // which is not i want.
                                       // so how can i get ""

to sum up, what i want is an object file of class File, which when i call file.getPath() it returns "" and when i call file.exists() it returns true;


If you really just want to have the current working directory in a string, you can simply use System.getProperty("user.dir"), see System Properties.

Otherwise you'll have to use . for the "current working directory" and use File#getCanonicalPath() the get the canonical representation of this File object. Also see File#getCanonicalFile().


To your first question: File("") is a valid path and is equivalent to System.getProperty("user.dir"). It is not a valid file or directory in that path (it still doea have a path though. This is a completely relative path, so when you call getPath() it will return an empty string since no file found by the name "".

Your second question "." is a directory, it exists, and it also has a relative path of "", so when calling getPath you will see the path "" + the directory name "."

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜