getParentFile和getParent输出的上层目录,是根据你创建File对象时输入的路径字符串,解析不出来的。API如下
getParentFile
public File getParentFile()返回此抽象路径名的父路径名的抽象路径名,如果此路径名没有指定父目录,则返回 null。
抽象路径名的父 路径名由路径名的前缀(如果有)以及路径名的名称序列中最后一个名称以外的所有名称组成。如果名称序列为空,那么该路径名没有指定父目录。
返回:
由此抽象路径名指定的父目录的抽象路径名,如果此路径名没有指定父目录,则返回 null
从以下版本开始:
1.2
--------------------------------------------------------------------------------
因为你的路径名是test1.class,从这个路径字符串解析不出来上级路经,这个方法是直接分析文件分割符的,windows下就是\。你用下面代码运行看看就知道了
import java.io.*;
public class PrintArguments {
public static void main(String[] args) throws NullPointerException
{
File f=new File("aaa\\test1.class");
System.out.println(f.exists());
// GetFiles a=new GetFiles();
System.out.println(f.getAbsolutePath());
System.out.println(f.getParent());
File b=f.getParentFile();
System.out.println(b.getAbsolutePath());
if(b==null)
System.out.println("null");
}
}