Java如何判断文件或者文件夹是否在?不存在如何创建?
2016-07-24 14:31
666 查看
1. 首先明确一点的是:test.txt文件可以和test文件夹同时存在同一目录下;test文件不能和test文件夹同时存在同一目录下。
原因是:
(1)win的文件和文件夹都是以节点形式存放,这就意味着相同的文件和文件名不能处在同一目录下,会命名冲突。
(2)文件后缀名也算是文件名的一部分,即test.txt文件和test文件不是相同文件名的文件。
2. 基于以上原因,如果我想在d:创建一个test文件夹,但是d:下面有一个test文件,那么由于命名冲突,是不可能创建成功的。
所以,在创建之前,要通过file.exists()判断是否存在test命名的文件或者文件夹,如果返回true,是不能创建的;
然后再通过file.isDirectory()来判断这是不是一个文件夹。
原因是:
(1)win的文件和文件夹都是以节点形式存放,这就意味着相同的文件和文件名不能处在同一目录下,会命名冲突。
(2)文件后缀名也算是文件名的一部分,即test.txt文件和test文件不是相同文件名的文件。
2. 基于以上原因,如果我想在d:创建一个test文件夹,但是d:下面有一个test文件,那么由于命名冲突,是不可能创建成功的。
所以,在创建之前,要通过file.exists()判断是否存在test命名的文件或者文件夹,如果返回true,是不能创建的;
然后再通过file.isDirectory()来判断这是不是一个文件夹。
import java.io.File; import java.io.IOException; public class Main { public static void main(String[] args) { File file = new File("d:\\test_file.txt"); Main.judeFileExists(file); File dir = new File("d:\\test_dir"); Main.judeDirExists(dir); } // 判断文件是否存在 public static void judeFileExists(File file) { if (file.exists()) { System.out.println("file exists"); } else { System.out.println("file not exists, create it ..."); try { file.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } // 判断文件夹是否存在 public static void judeDirExists(File file) { if (file.exists()) { if (file.isDirectory()) { System.out.println("dir exists"); } else { System.out.println("the same name file exists, can not create dir"); } } else { System.out.println("dir not exists, create it ..."); file.mkdir(); } } }
相关文章推荐
- Java编程思想第4版-第二章
- JAVA中怎么保留小数点后两位
- Java enum的用法详解
- 解决spring设置filter过滤器结合rest风格获取post请求body参数输入流问题
- 初学springMVC搭建框架过程及碰到的问题
- Java解决No enclosing instance of type PrintListFromTailToHead is accessible问题
- Java中split方法对结尾空字符串不正确处理的解决方案
- Java 多线程中。两个线程交替执行,一个输出偶数,一个输出奇数
- SpringBoot学习笔记(4) Spring Boot 集成 Mybatis
- Java 反射
- JavaWeb之Servlet
- 二叉树的循环遍历方法,Java实现。利用栈和arraylist
- 精选30道Java笔试题解答
- JavaSE基础(六)
- 链表分析笔记
- javaIO流总结
- 性能分析系列——小命令保证大性能
- Spring 框架的设计理念与设计模式分析
- Java获取客户端IP地址-转
- SpringBoot学习笔记(3) Spring Boot 运行原理,自动配置