packagecom.util;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;/*** 文件操作工具类,提供文件夹创建 、文件夹删除、文件创建、文件删除、文件重命名、文件复制等功能*/
public classFileControlUnitl {/*** 创建文件夹
*@paramurl 创建的文件夹路径,例如:E:\\Workspaces\\MyEclipse 10\\test\\src\\com\\file,其中,file就是将要创建的文件夹名字
*@returnboolean 返回创建成功(true)或者失败(false)
*@throwsException*/
public static boolean createFolder(String url) throwsException{
url= url.replace("\\", "/");
File folder= newFile(url);if(folder.isDirectory() ||folder.exists()){throw new IOException("创建文件夹失败:["+folder+"]文件夹已经存在!");
}if(!folder.isFile()){
folder.mkdirs();
}//检测文件夹是否创建成功
if(folder.isDirectory() &&folder.exists()){return true;
}else{return false;
}
}/*** 根据文件夹名及其所在路径删除文件夹
*@paramurl 文件及其所在路径,例如::E:\\Workspaces\\MyEclipse 10\\test\\src\\com\\file
*@return*@throwsIOException*/
public static boolean deleteFolder(String url) throwsIOException{
url= url.replace("\\", "/");
File folder= newFile(url);//判断是否为目录
if(!folder.isDirectory()){throw new IOException("文件夹删除失败:["+folder+"]不是目录!");
}if(!folder.exists()){throw new IOException("文件夹删除失败:["+folder+"]文件夹不存在!");
}//判断文件是否存在文件,存在文件不允许删除
if(folder.listFiles().length>0){throw new IOException("文件夹删除失败:["+folder+"]目录下面存在文件或文件夹!");
}//删除文件夹
folder.delete();//返回文件夹删除是否成功
if(folder.exists()){return false;
}else{return true;
}
}/*** 根据路径和文件名创建文件
*@paramurl 创建文件的路径,例如:E:\\Workspaces\\MyEclipse 10\\test\\src\\com\\file
*@paramname 文件名 例如:testfile.java
*@returnboolean 返回创建成功(true)或者失败(false)
*@throwsException*/
public static boolean createFile(String url,String name) throwsException{
url= url.replace("\\", "/");
File folder= newFile(url);//判断是否是目录
if(!folder.isDirectory()){throw new IOException("创建文件失败:["+folder+"]不是文件夹路径!");
}//判断文件是否已经存在
url = url + "/" +name;
File file= newFile(url);if(file.exists()){throw new IOException("创建文件失败:["+name+"]文件已经存在!");
}//创建文件
file.createNewFile();//检测文件是否创建成功
if(file.exists() &&file.isFile()){return true;
}else{return false;
}
}/*** 根据旧文件地址和文件名,重命名文件名
*@paramurl 旧文件地址以及文件名,如:E:\\Workspaces\\MyEclipse 10\\test\\src\\com\\file\\TestFile.java
*@paramnewname 新文件名:New_TestFile.java
*@return*@throwsIOException*/
public static boolean reanmeFile(String url,String newname) throwsIOException{
String old_url= url.replace("\\", "/");
File old_file= newFile(old_url);if(!old_file.isFile()||!old_file.exists()){throw new IOException("文件重命名失败:["+old_file+"]文件不存在!");
}//获取旧的文件名
String old_name =old_file.getName();//获取父文件路径
String parent_url =old_file.getParent();//重命名
String new_url = parent_url + "/" +newname;
File new_file= newFile(new_url);
old_file.renameTo(new_file);//校验文件是否重命名成功
String new_name =new_file.getName();if(old_name.equals(new_name)){return false;
}else{return true;
}
}/*** 根据源文件和复制路径,复制文件
*@paramsourceurl 源文件及其路径 如:E:\\Workspaces\\MyEclipse 10\\test\\src\\com\\file\\TestFile.java
*@paramcopyurl 复制文件路径 如:E:\\Workspaces\\MyEclipse 10\\test\\src\\com\\file\\copyfile
*@return*@throwsException*/
public static boolean copyFile(String sourceurl,String copyurl) throwsException{
sourceurl= sourceurl.replace("\\", "/");
copyurl= copyurl.replace("\\", "/");
File source_file= newFile(sourceurl);
File copy_file= newFile(copyurl);//判断文件以及复制路径是否存在
if(!source_file.exists()){throw new IOException("文件复制失败:源文件["+source_file+"]不存在");
}if(!copy_file.isDirectory()){throw new IOException("文件复制失败:复制路径["+copyurl+"]错误");
}//File parent = copy_file.getParentFile();// //创建复制路径//if(!parent.exists()){//parent.mkdirs();//}//创建复制文件
copyurl = copyurl + "/" +source_file.getName();
copy_file= newFile(copyurl);if(!copy_file.exists()){
copy_file.createNewFile();
}
FileInputStream fis= newFileInputStream(source_file);
FileOutputStream fos= newFileOutputStream(copy_file);
BufferedInputStream bis= newBufferedInputStream(fis);
BufferedOutputStream bos= newBufferedOutputStream(fos);byte[] kb = new byte[1024];intindex;while((index = bis.read(kb))!=-1){
bos.write(kb,0, index);
}
bos.close();
bis.close();
fos.close();
fis.close();//判断文件是否复制成功
if(!copy_file.exists()){return false;
}else if(source_file.length()!=copy_file.length()){return false;
}else{return true;
}
}/*** 根据文件及其所在路径删除文件
*@paramurl 文件及其所在路径,例如::E:\\Workspaces\\MyEclipse 10\\test\\src\\com\\file\\TestFile.java
*@return*@throwsIOException*/
public static boolean deleteFile(String url) throwsIOException{
url= url.replace("\\", "/");
File file= newFile(url);//判断是否为文件
if(!file.isFile()){throw new IOException("文件删除失败:["+file+"]不是文件!");
}//判断文件是否存在
if(!file.exists()){throw new IOException("文件删除失败:["+file+"]文件不存在!");
}//删除文件
file.delete();//返回文件删除是否成功
if(file.exists()){return false;
}else{return true;
}
}
}