
getParentFile()的作用
import java.io.File;
import java.io.IOException;
public class FileMkdirSapmle1 {
public static void main(String[] args) {
File f1 = new File("d:" + File.separator + "filetest9"+File.separator +"filetest10"); // 生成 File类的实例
f1.getParentFile().mkdirs(); //加了getParentFile(),生成的是文件夹里有文件
//f1.mkdirs(); // 不加getParentFile(),生成的是两个文件
System.out.println(f1.getParent()); //讲解getParentFile()和getParent()的区别
try {
f1.createNewFile(); // 创建文件
} catch (IOException e) {
e.printStackTrace();
}
}
}
上面写错了,不加getParentFile,生成的是两个文件夹 展开
getParentFile()的作用是返回此抽象路复径名父目录的抽象路径名。抽象路径名的父路径名由路径名的前缀(如果有)以及路径名的名称序列中最后一个名称以外的所有名称组成。输出的路径是根据创建制的File对象时输入的路径而解析出来的,百如果此路径名没有指定父目录,则返回null。
扩展资料:
路径名:在树形结构目录中,从根目录到任意数据文件都只有一条唯一的通百路。在该路径上,从树的根目录开始,把全部目录文件名与数据文件名一次用“/”连度接起来,即构成该数据文件唯一的路径知名。
假设用户B访问F盘下的文件J,路径名为/ B/F/J
当前目录:当一个文件系统有多级时,每访问一个文件,都要使用道从树根开始,直到数据文件为止,是相当麻烦的事,可版为每个进程设置一个“当前目录“,又称“工作目录“。
假设用户B的当前目录是F,则此时文件J的相对路径权名仅是J本身。

2023-07-25 广告
getParentFile()的作用是返回此抽象路径名父目录的抽象路径名。抽象路径名的父路径名由路径名的前缀(如果有)以及路径名的名称序列中最后一个名称以外的所有名称组成。输出的路径是根据创建的File对象时输入的路径而解析出来的,如果此路径名没有指定父目录,则返回null。
扩展资料:
若是所在的类已经打包,即不是裸体类,如:package com.bjx;则file.getParentFile()获取的上层目录是从文件 file到此包的顶层com所在的目录,因为会把com.bjx.class看成一个整体的类。如果是裸体类,这获取的是从文件file到class所在的目录。
在使用.mkdirs() 方法生成指定文件时,需要先通过getParentFile()获得file对象路径直接到文件那一层,再生成文件,不然生成的是文件夹而不是想要的文件。
推荐于2018-02-27 · 知道合伙人教育行家

问题就是.mkdirs(); 这个方法只能生成一层一层的文件夹,不能生成文件,而你的file对象路径是直接到文件那一层的,不用getParentFile()获得父目录的话,就会想你说的那样生成两个文件夹而不是你想要的文件,所以要先调用getParentFile()获得父目录,用.mkdirs()生成父目录文件夹,最后把你想要的文件生成到这个文件夹下面,就是想要的结果。
的作用是获得父目录
问题就是.mkdirs(); 这个方法只能生成一层一层的文件夹,不能生成文件,而你的file对象路径是直接到文件那一层的,不用getParentFile()获得父目录的话,就会想你说的那样生成两个文件夹而不是你想要的文件,所以要先调用getParentFile()获得父目录,再用.mkdirs()生成父目录文件夹,最后把你想要的文件生成到这个文件夹下面,就是想要的结果了,懂了么,我描述能力比较弱,哪里不懂再问哈
生成的父目录文件夹就是filetest9么?
对
问题就是.mkdirs(); 这个方法只能生成一层一层的文件夹,不能生成文件,而你的file对象路径是直接到文件那一层的,不用getParentFile()获得父目录的话,就会想你说的那样生成两个文件夹而不是你想要的文件,所以要先调用getParentFile()获得父目录,用.mkdirs()生成父目录文件夹,最后把你想要的文件生成到这个文件夹下面,