Java 判断多级路径是否存在,不存在就创建
方案一:
(带文件名的Path:如:D:\news\2014\12\abc.text)
public boolean isexitsPath(String path)throws InterruptedException{
String [] paths=path.split("\\\\");
StringBuffer fullPath=new StringBuffer();
for (int i = 0; i < paths.length; i++) {
fullPath.append(paths[i]).append("\\\\");
File file=new File(fullPath.toString());
if(paths.length-1!=i){//判断path到文件名时,无须继续创建文件夹!
if(!file.exists()){
file.mkdir();
System.out.println("创建目录为:"+fullPath.toString());
Thread.sleep(1500);
}
}
}
File file=new File(fullPath.toString());//目录全路径
if (!file.exists()) {
return true;
}else{
return false;
}
}
注意:带文件名的path,需要判断是否path中已经包含文件名,若包含,则不再创建文件夹。
(不带文件名的Path:如:D:\news\2014\12)
public boolean isexitsPath(String path)throws InterruptedException{
String [] paths=path.split("\\\\");
StringBuffer fullPath=new StringBuffer();
for (int i = 0; i < paths.length; i++) {
fullPath.append(paths[i]).append("\\\\");
File file=new File(fullPath.toString());
if(!file.exists()){
file.mkdir();
System.out.println("创建目录为:"+fullPath.toString());
Thread.sleep(1500);
}
}
File file=new File(fullPath.toString());//目录全路径
if (!file.exists()) {
return true;
}else{
return false;
}
}
方案二:
(带文件名的Path:如:D:\news\2014\12\abc.text)
public static boolean isExist(String filePath) {
String paths[] = filePath.split("\\\\");
String dir = paths[0];
for (int i = 0; i < paths.length - 2; i++) {//注意此处循环的长度
try {
dir = dir + "/" + paths[i + 1];
File dirFile = new File(dir);
if (!dirFile.exists()) {
dirFile.mkdir();
System.out.println("创建目录为:" + dir);
}
} catch (Exception err) {
System.err.println("ELS - Chart : 文件夹创建发生异常");
}
}
File fp = new File(filePath);
if(!fp.exists()){
return true; // 文件不存在,执行下载功能
}else{
return false; // 文件存在不做处理
}
}
(不带文件名的Path:如:D:\news\2014\12)
public static boolean isExist(String filePath) {
String paths[] = filePath.split("\\\\");
String dir = paths[0];
for (int i = 0; i < paths.length - 1; i++) {//注意此处循环的长度
try {
dir = dir + "/" + paths[i + 1];
File dirFile = new File(dir);
if (!dirFile.exists()) {
dirFile.mkdir();
System.out.println("创建目录为:" + dir);
}
} catch (Exception err) {
System.err.println("ELS - Chart : 文件夹创建发生异常");
}
}
File fp = new File(filePath);
if(!fp.exists()){
return true; // 文件不存在,执行下载功能
}else{
return false; // 文件存在不做处理
}
}
注意:带文件名和不带文件名的处理方式的区别就在于循环的长度上。