亲宝软件园·资讯

展开

java中实现创建目录与创建文件的操作实例

禺垣 人气:0

一、创建目录

mkdir()——仅创建一层目录,返回true或false.

mkdirs()——创建一层或多层目录,返回true或false.

也就是,在通常情况下,使用mkdirs()即可满足创建目录的需求。

如,

File file = new File("D:\\myLevel1\\myLevel2"); //以某路径实例化一个File对象
if (!file.exists()){ //如果不存在
    boolean dr = file.mkdirs(); //创建目录
} 

即在D盘根目录下创建了myLevel1、myLevel2两层目录。

二、创建文件

createNewFile()——当File对象实例化的路径中,上面各层目录均已存在,最后一层目录不存在时,以最后一层目录名为名称创建文件。返回true或false.

如,

File file = new File("D:\\myLevel1\\myLevel2\\abc.txt"); //实例化File对象
try {
    boolean fr = file.createNewFile(); //创建文件
}catch (Exception e){
    e.printStackTrace();
}

即在D:\myLevel1\myLevel2下创建了一个abc.txt文件。

三、同时创建目录和文件

getParent()——得到路径的父级及以上的目录,String类型。

getParentFile()——得到路径的父级及以上的目录实例化的File对象。

先使用getParentFile().mkdirs()创建目录,再使用createNewFile()创建文件,如,

File file = new File("D:\\myLevel1\\myLevel2\\abc.txt"); //实例化File对象
boolean dr = file.getParentFile().mkdirs(); //创建目录
try {
    boolean fr = file.createNewFile(); //创建文件
}catch (Exception e){
    e.printStackTrace();
}

即在D盘下创建了myLevel1、myLevel2两层目录和abc.txt文件。

补充知识:getParentFile()方法和getParent()的区别

getParentFile()方法返回的是File类型的值,而getParent()返回的是字符串类型的值,根据你想获得的值来区别使用,而exists()方法和mkdirs()方法是getParentFile()返回的File类型里面的方法,exists()方法是查看有没有此路径或者文件,mkdirs()方法是若没有此路径用来创建的

//若是有重名文件就会加后缀
String newfilename=filename;
int i=1;
if(descFile.exists()){
    newfilename=name+"("+i+")"+suffix;
    String parentPath=descFile.getParent();
    descFile=new File(parentPath+File.separator+newfilename);
    i++;
}
//判断目录是否存在
if(!descFile.getParentFile().exists()){
    //如果目标文件所在目录不存在,则创建父目录
    descFile.getParentFile().mkdirs();
}

mkdir与mkdirs的区别

项目中需要在代码中读取或创建文件保存路径,用到了mkdir,查看还有个mkdirs方法,这里记录一下两者的区别。

1、关于两者的说明如下:

2、结合自己的理解及具体实践如下:

mkdir():只能创建一层目录, 如:

File file = new File("e:/test");
file.mkdir();

这样会在e:/路径下创建test目录.

mkdirs(): 创建多层目录,如:

File file = new File("e:/test/0930");
file.mkdirs();

这样才能在e:/test/路径下创建0930目录,mkdir这里就不生效了。

总结

加载全部内容

相关教程
猜你喜欢
用户评论