为什么用getParent()方法返回上一级目录时,返回的却是上级所有目录。

为什么用getParent()方法返回上一级目录时,返回的却是上级所有目录。


package com.tang.file;


import java.io.File;

import java.io.IOException;


/*

 *  创建一个File类对象,判断指定文件或目录是否存在,若存在判断其是文件还是目录,是否可读、可写。

 * 

 * 任务要求:

 * 1、先在File文件下创建一个Monday.docx的文件。判断文件是否创建成功,若成功返回文件名称和父目录。

 * 2、先判断文件是否存在,若存在就先获取其路径或名称。

 * 3、再判断其是文件还是目录;判断文件是否可读、可写

 * 

 * 

 */

public class Createfile {


public static void main(String[] args) {

// TODO 自动生成的方法存根

File file1=new File("f:\\File\\a\\b");

if(!file1.exists()) {

file1.mkdirs();

}

File file2=new File(file1,"Monday.docx");

if(!file2.exists()) {

try {

file2.createNewFile();

} catch (IOException e) {

// TODO 自动生成的 catch 块

e.printStackTrace();

}

}

if(file2.exists()) {

System.out.println("文件创建成功!");

System.out.println("文件名称:"+file2.getName());

String q=file2.getParent();

System.out.println("文件上一级目录:"+q);

if(file2.isDirectory()) {

System.out.println("文件或目录:这是一个目录");

}

if(file2.isFile()) {

System.out.println("文件或目录:这是一个文件");

}

if(file2.canRead()&&file2.canWrite()) {

System.out.println("读写性:这个文件既可以读,也可以写");

}

}


}


}



正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,getParent()方法返回的是上层目录路径,是根据你创建的File对象时输入的路径而解析出来的,如果没有指定的父目录,则返回空。

这里返回文件上一级目录可以使用 file.getParentFile().getName(),首先使用getParentFile()获得父目录的文件对象,然后通过.getName()获取父目录的文件名。

具体如下:

http://img1.sycdn.imooc.com//climg/5ebd0c3b09180b0204450110.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 唐安惠 提问者 #1
    理解了,谢谢
    2020-05-14 18:37:27
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师