package com.hc.fileio;
import java.io.File;
import java.io.IOException;
/**
* @author MaskedMen
*对文件及文件夹的操作
*/
public class OperatorFile {
public static void main(String[] args) {
deleteDirectorFile("D:\\XXX.txt");
try {
createFileByName(false,"D:\\HDD\\XX");
} catch (IOException e) {
e.printStackTrace();
}
try {
BathCreateFile(new String[]{
"D:\\hhh\\x1",
"D:\\hhh\\x2",
"D:\\hhh\\x3"
});
} catch (IOException e) {
e.printStackTrace();
}
BathDeleteFile(new String[]{
"D:\\hhh\\x1",
"D:\\hhh\\x2",
"D:\\hhh\\x3"
});
deleteDirectorFile("D:\\ss\\aa\\ss\\oo");
}
/**根据传递的文件名删除特定文件
* @param fileName 表示路径和文件名的字符串
*/
public static void deleteFileByName(String fileName){
File file = new File(fileName);
if(file!=null&&file.exists()){
file.delete();
}
}
/**根据文件名或者文件夹名创建文件或者文件
* @param isDir false为穿件文件 true为创建文件夹
* @param fileOrDirector 表示路径和文件名的字符串
* @throws IOException
*/
public static void createFileByName(boolean isDir,String fileOrDirector) throws IOException{
File file = new File(fileOrDirector);
if(file==null){
return;
}
if(file.exists()){
return;
}
if(isDir){
file.mkdirs();
}else{
file.createNewFile();
}
}
/**批量创建多个文件
* @param name 可变参数
* @throws IOException
*/
public static void BathCreateFile(String[] fileNames) throws IOException{
for (String s : fileNames) {
createFileByName(false,s);
}
}
/**批量删除多个文件
* @param name
*/
public static void BathDeleteFile(String[] fileNames){
for (String s : fileNames) {
File file = new File(s);
if(file.exists()){
file.delete();
}
}
}
/**将特定文件夹(文件夹中有文件)删除
* 子文件夹或文件
* @param director
*/
public static void deleteDirectorFile(String dirPath){
File file = new File(dirPath);
if(!(file.exists()&&file.isDirectory())){
return;
}
File[] files = file.listFiles();
for(File f:files){
if(f.isFile()){
f.delete();
}else{
deleteDirectorFile(f.getAbsolutePath());
f.delete();//删除自己本身
}
}
}
}