为什么我的相对路径和绝对路径是一样的。

为什么我的相对路径和绝对路径是一样的。

package com.imooc.flie;

import java.io.File;
import java.io.IOException;

public class FileDemo {

	public static void main(String[] args) {
		boolean flag = false;
		File fileone = new File("c:\\File\\DDD\\emem");
		File filetwo = new File(fileone, "Monday.docx");
		if (!fileone.exists()) {
			fileone.mkdir();
		}
		if (!filetwo.exists()) {
			try {
				filetwo.createNewFile();
				System.out.println("创建文件成功");
				System.out.println("文件名称:" + filetwo.getName());

				System.out.println(filetwo.getParent());
				System.out.println(filetwo.getAbsolutePath());
				System.out.println(filetwo.getPath());

				System.out.println("文件上一级目录:" + filetwo.getParentFile().getName());
				System.out.print("文件/目录:");
				if (filetwo.isFile()) {
					System.out.println("这是一个文件");
				} else if (filetwo.isDirectory()) {
					System.out.println("这是一个文件夹");
				}
				System.out.print("读写性:");
				if (filetwo.canRead() && filetwo.canWrite()) {
					System.out.println("这个文件既可以读又可以写");
				} else if (filetwo.canRead() && !(filetwo.canWrite())) {
					System.out.println("这个文件只能读");
				} else if (filetwo.canWrite() && !(filetwo.canRead())) {
					System.out.println("这个文件只能读");
				}

			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

//		 TODO Auto-generated method stub
//		File one = new File("c:\\test\\imooc\\io\\score.txt");
//		File one = new File("c:\\test\\imooc","io\\score.txt");
		File one0 = new File("c:\\test\\imooc");
		File one = new File(one0, "io\\score");

		// 判断文件还是目录
		System.out.println("是否是目录" + one.isDirectory());
		System.out.println("是否是文件" + one.isFile());
		// 创建文件
		File fileone0 = new File("c:\\test\\set\\HashSet");
		if (!fileone0.exists()) {
			fileone0.mkdirs();
		}

	}

}

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

正在回答

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

2回答

同学你好,

1、对于第一个问题,相对路径是指与文件相对应的平级目录。而这里由于eclipse的目录结构比较特别,在eclipse中的相对路径都是只能相对于工程下的路径。所以在eclipse下无法使用相对目录创建在其他的文件夹,但是可以使用绝对路径进行创建。例如:

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

2、第二个问题,eclipse中使用绝对路径,是从盘符到文件的的整个路径,获取eclipse中相对路径也是与绝对路径一样的哦~,因为相对路径是指与文件相对应的平级目录。

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

好帮手慕酷酷 2019-09-18 14:46:52

同学你好,这里同学在进行创建File对象时,使用的就是一个绝对路径创建的,所以输出的相对路径与绝对路径是一样的。具体如下:

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

只有创建的File对象是相对路径,输出的相对路径与绝对路径才会不同哦~具体代码如下:

import java.io.File;

import java.io.IOException;

public class FileDemo {

	public static void main(String[] args) {
		boolean flag = false;

		File filetwo = new File( "Monday.docx");
	
		if (!filetwo.exists()) {
			try {
				filetwo.createNewFile();
				System.out.println("创建文件成功");
				System.out.println("文件名称:" + filetwo.getName());

				System.out.println(filetwo.getAbsolutePath());
				System.out.println(filetwo.getPath());

				System.out.print("文件/目录:");
				if (filetwo.isFile()) {
					System.out.println("这是一个文件");
				} else if (filetwo.isDirectory()) {
					System.out.println("这是一个文件夹");
				}
				System.out.print("读写性:");
				if (filetwo.canRead() && filetwo.canWrite()) {
					System.out.println("这个文件既可以读又可以写");
				} else if (filetwo.canRead() && !(filetwo.canWrite())) {
					System.out.println("这个文件只能读");
				} else if (filetwo.canWrite() && !(filetwo.canRead())) {
					System.out.println("这个文件只能读");
				}

			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

}

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

  • 提问者 mixiaofan #1
    如果这么创建的话会直接创建在工程文件夹里,那我如果想要创建在其他的文件夹中该怎么做。还有就是在外部文件夹里的文件绝对路径是从盘符到文件的的整个路径,那相对路径应该是什么样的
    2019-09-18 15:00:38
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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