java 文件创建目录_java 如何在当前文件下 创建目录,

匿名用户

1级

2012-12-15 回答

public static void main(String args[]) {

File directory = new File(".");

String path = null;

try {

path = directory.getCanonicalPath();//获取当前路径

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

path +="\\Test";

File file =new File(path);

System.out.println(path);

//如果文件夹不存在则创建

if  (!file .exists()  && !file .isDirectory())

{

System.out.println("//不存在");

file .mkdir();

} else

{

System.out.println("//目录存在");

}

}上面代码已经完成了提问要求,注释写的也比较详细。下面拓展一下这个问题。

首先来看下java获取当前路径的几种方法:

1、利用System.getProperty()函数获取当前路径:

System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径

2、使用File提供的函数获取当前路径:

File directory = new File("");//设定为当前文件夹

try{

System.out.println(directory.getCanonicalPath());//获取标准的路径

System.out.println(directory.getAbsolutePath());//获取绝对路径

}catch(Exceptin e){}

File.getCanonicalPath()和File.getAbsolutePath()大约只是对于new File(".")和new File("..")两种路径有所区别。

# 对于getCanonicalPath()函数,“."就表示当前的文件夹,而”..“则表示当前文件夹的上一级文件夹

# 对于getAbsolutePath()函数,则不管”.”、“..”,返回当前的路径加上你在new File()时设定的路径

# 至于getPath()函数,得到的只是你在new File()时设定的路径

比如当前的路径为 C:/test :

File directory = new File("abc");

directory.getCanonicalPath(); //得到的是C:/test/abc

directory.getAbsolutePath();    //得到的是C:/test/abc

direcotry.getPath();                    //得到的是abc

File directory = new File(".");

directory.getCanonicalPath(); //得到的是C:/test

directory.getAbsolutePath();    //得到的是C:/test/.

direcotry.getPath();                    //得到的是.

File directory = new File("..");

directory.getCanonicalPath(); //得到的是C:/

directory.getAbsolutePath();    //得到的是C:/test/..

direcotry.getPath();                    //得到的是..

再来看下创建目录的几种方法:

1、File类的createNewFile根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败

2、File类的mkdir方法根据抽象路径创建目录

3、File类的mkdirs方法根据抽象路径创建目录,包括创建必需但不存在的父目录

4、File类的createTempFile方法创建临时文件,可以制定临时文件的文件名前缀、后缀及文件所在的目录,如果不指定目录,则存放在系统的临时文件夹下。

5、除mkdirs方法外,以上方法在创建文件和目录时,必须保证目标文件不存在,而且父目录存在,否则会创建失败

示例代码:

package book.io;

import java.io.File;

import java.io.IOException;

public class CreateFileUtil {

public static boolean createFile(String destFileName) {

File file = new File(destFileName);

if(file.exists()) {

System.out.println("创建单个文件" + destFileName + "失败,目标文件已存在!");

return false;

}

if (destFileName.endsWith(File.separator)) {

System.out.println("创建单个文件" + destFileName + "失败,目标文件不能为目录!");

return false;

}

//判断目标文件所在的目录是否存在

if(!file.getParentFile().exists()) {

//如果目标文件所在的目录不存在,则创建父目录

System.out.println("目标文件所在目录不存在,准备创建它!");

if(!file.getParentFile().mkdirs()) {

System.out.println("创建目标文件所在目录失败!");

return false;

}

}

//创建目标文件

try {

if (file.createNewFile()) {

System.out.println("创建单个文件" + destFileName + "成功!");

return true;

} else {

System.out.println("创建单个文件" + destFileName + "失败!");

return false;

}

} catch (IOException e) {

e.printStackTrace();

System.out.println("创建单个文件" + destFileName + "失败!" + e.getMessage());

return false;

}

}

public static boolean createDir(String destDirName) {

File dir = new File(destDirName);

if (dir.exists()) {

System.out.println("创建目录" + destDirName + "失败,目标目录已经存在");

return false;

}

if (!destDirName.endsWith(File.separator)) {

destDirName = destDirName + File.separator;

}

//创建目录

if (dir.mkdirs()) {

System.out.println("创建目录" + destDirName + "成功!");

return true;

} else {

System.out.println("创建目录" + destDirName + "失败!");

return false;

}

}

public static String createTempFile(String prefix, String suffix, String dirName) {

File tempFile = null;

if (dirName == null) {

try{

//在默认文件夹下创建临时文件

tempFile = File.createTempFile(prefix, suffix);

//返回临时文件的路径

return tempFile.getCanonicalPath();

} catch (IOException e) {

e.printStackTrace();

System.out.println("创建临时文件失败!" + e.getMessage());

return null;

}

} else {

File dir = new File(dirName);

//如果临时文件所在目录不存在,首先创建

if (!dir.exists()) {

if (!CreateFileUtil.createDir(dirName)) {

System.out.println("创建临时文件失败,不能创建临时文件所在的目录!");

return null;

}

}

try {

//在指定目录下创建临时文件

tempFile = File.createTempFile(prefix, suffix, dir);

return tempFile.getCanonicalPath();

} catch (IOException e) {

e.printStackTrace();

System.out.println("创建临时文件失败!" + e.getMessage());

return null;

}

}

}

public static void main(String[] args) {

//创建目录

String dirName = "D:/work/temp/temp0/temp1";

CreateFileUtil.createDir(dirName);

//创建文件

String fileName = dirName + "/temp2/tempFile.txt";

CreateFileUtil.createFile(fileName);

//创建临时文件

String prefix = "temp";

String suffix = ".txt";

for (int i = 0; i 

System.out.println("创建了临时文件:"

+ CreateFileUtil.createTempFile(prefix, suffix, dirName));

}

//在默认目录下创建临时文件

for (int i = 0; i 

System.out.println("在默认目录下创建了临时文件:"

+ CreateFileUtil.createTempFile(prefix, suffix, null));

}

}

}


版权声明:本文为weixin_39839018原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。