当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

File Path 相对路径

发表于: 2014-06-07   作者:abc08010051   来源:转载   浏览:
摘要:           最近在项目中想使用相对路径存放上传的apk包,所以研究了一下相对路径创建File的相关知识       1 参考以前的代码,写下如下代码:       public static void main(String[] args) throws IOExcep

     

    最近在项目中想使用相对路径存放上传的apk包,所以研究了一下相对路径创建File的相关知识

 

    1 参考以前的代码,写下如下代码:

     

	public static void main(String[] args) throws IOException {
		File parentFile = new File("/intelStore/apk/test");
		if (!parentFile.exists()) {
			parentFile.mkdir();
		}
		System.out.println(parentFile.getAbsolutePath());
		File newFile = new File("/intelStore/apk/my.txt");
		if (!newFile.exists()) {
			newFile.createNewFile();
		}
		System.out.println(newFile.getAbsolutePath());
	}

   打印结果:   

 

 

F:\intelStore\apk\test
Exception in thread "main" java.io.IOException: 系统找不到指定的路径。

 

 

 

   在以前的项目中此段代码不会报错,自己写测试的时候会报错,在创建my.txt文件时会提示不存在此路径,可是代码已经创建父路径的文件夹了啊,然后单独允许如下代码:

     public static void main(String[] args) throws IOException {

		File parentFile = new File("/intelStore/apk/test");
		if (!parentFile.exists()) {
			parentFile.mkdir();
		}
		System.out.println(parentFile.getAbsolutePath());
	}

 

   打印结果:

F:\intelStore\apk\test

   

    到F盘去查看根本没有生成intelStore文件夹,仔细考虑了下,可能是java无法创建一个多层均不存在的文件夹目录,

    然后运行如下的代码:

   

 
 
		File parentFile = new File("/intelStore/apk/test");
		if (!parentFile.exists()) {
			parentFile.mkdir();
		}
		System.out.println(parentFile.getAbsolutePath());
	}

   发现此时可以创建文件夹intelStore,说明上面的猜想是对的,于是写了一个递归方法,去创建这样多层不存在的文件夹:

  

	public static void createFile (File file) {
		if (!Objects.equals(file, null)) {
			createFile(file.getParentFile());
			if (!file.exists()) {
				file.mkdir();
			}
		}

	}

 

  2 相对路径

     看网上说在Eclipse里创建相对路径的文件夹,文件夹的绝对路径为:workspace路径+ 项目+ 相对路径,可是经我测试如下代码:

     

	public static void main(String[] args) throws IOException {
		File parentFile = new File("/intelStore/apk/test");
		System.out.println(parentFile.getAbsolutePath());
		createFile(parentFile);		

	}

    打印结果为:

F:\intelStore\apk\test

   上面代码执行以后确实在F盘下创建了对应的文件夹    

    我项目的workspace路径为:F:\newWorkspace\readLocalPhoto,也就是说绝对路径并没有创建在workspace里的项目文件夹下,而是在项目所在根路径下创建的相对路径

 

   关于在tomcat里的web项目里运行此代码,网上很多人的说法是,会在tomcat的bin路径下创建相对路径,我在一个servlet里运行如下代码,

	protected void doPost(HttpServletRequest request,  
	        HttpServletResponse response) throws ServletException, IOException {  
		File parentFile = new File("/intelStore/apk/test");
		System.out.println(parentFile.getAbsolutePath());
		createFile(parentFile);
	} 

   结果:

D:\intelStore\apk\test

   并且在D盘下找到了创建的路径

   

   我的tomcat的路径在D盘下的某个文件夹,所以我感觉在tomcat的web里运行,相对路径应该创建在tomcat所在根目录下创建相对路径

 

 3 File Path

    在创建相对路径的File时,想使用jdk新特性Path来进行相关操作,代码如下:

    

	public static void main(String[] args) throws IOException {

		Path path = Paths.get("/intelStore/apk/test");
		System.out.println(path.toFile().getAbsolutePath());
		createFile(path);
	}

	public static void createFile(Path path) {
		int nameCount = path.getNameCount();
		for (int index = 0; index < nameCount; index++) {
			System.out.println(path.getName(index).toFile().getAbsolutePath());
		}
	}

  打印结果:

F:\intelStore\apk\test
F:\newWorkspace\NIODemo\intelStore
F:\newWorkspace\NIODemo\apk
F:\newWorkspace\NIODemo\test

   通过上面的代码发现,在使用相对路径的File和Path相互转换时,Path按照名称进行分割,会出现和File对应的路径不一致的情况

 

   而且分割后的Path会在workspace下的当前项目路径文件夹来存放相对路径,而不是项目所在的根路径来创建相对路径

 

 

 

 

 

File Path 相对路径

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
SOS是一个调试器扩展,用于调试.NET应用程序。它提供了一组非常丰富的命令,这些命令使开发人员可以
之前在做iphone设备上Debug工作,后来切换到ipad,就爆出这个错误, 找了一会找到了原因,ipad系统
Missing recommend icon file 的问题。 当我们验证我们的app时,出现了一个这样的警告 意思是少了推
1.管理文件系统 一般而言,应用程序都会有保存数据、检索数据的需求。 1.1 使用 path 类来访问文件
hi.baidu.com/woshenxia/item/f6d0d3d1be183e44dcf9bef2 事件描述:为了将国行ROM中system/app下的C
在这次做LN项目的过程中页面的部分的设计使用的是Dreamweaver,不得不承认Dreamweaver太强大了,帮
转自:http://www.jb51.net/web/21806.html 相对路径-以引用文件之网页所在位置为参考基础,而建立
在 WEB 前端开发的过程中经常会遇到引入外部文件的情况,例如在 HTML 文件里引入外部 JS 文件和外部
在 WEB 前端开发的过程中经常会遇到引入外部文件的情况,例如在 HTML 文件里引入外部 JS 文件和外部
简介: HTML 相对路径 (Relative Path) 同一个目录的文件引用 如果源文件和引用文件在同一个目录里
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号