博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件,文件夹的创建和删除
阅读量:6993 次
发布时间:2019-06-27

本文共 3880 字,大约阅读时间需要 12 分钟。

QQ群中,有人问文件夹的删除,就上网查了一下,整了个程序,要注意的地方就是,文件夹里面的内容要判断是文件还是子文件夹

贴上源码(有的内容来自网络)

import java.io.File;import java.io.IOException;public class TestFolder {	public static void main(String[] args) {		String dir="E:/testfile/";		createDir(dir);		String filename="test1.txt";		String subdir="subdir";		createDir(dir+subdir);		createFile(dir+filename);		createFile(dir+subdir+filename);				DeleteFolder(dir);	}	/**	 * 创建文件	 * @param destFileName	 * @return	 */	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 + "失败!");			return false;		}	}	/**	 * 创建目录	 * @param destDirName	 * @return	 */	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;		}	}	    /**     *  根据路径删除指定的目录或文件,无论存在与否     *@param sPath  要删除的目录或文件     *@return 删除成功返回 true,否则返回 false。     */    public static boolean DeleteFolder(String sPath) {        boolean flag = false;        File file = new File(sPath);        // 判断目录或文件是否存在        if (!file.exists()) {  // 不存在返回 false            return flag;        } else {            // 判断是否为文件            if (file.isFile()) {  // 为文件时调用删除文件方法                return deleteFile(sPath);            } else {  // 为目录时调用删除目录方法                return deleteDirectory(sPath);            }        }    }        /**     * 删除单个文件     * @param   sPath    被删除文件的文件名     * @return 单个文件删除成功返回true,否则返回false     */    public static  boolean deleteFile(String sPath) {        boolean flag = false;        File file = new File(sPath);        // 路径为文件且不为空则进行删除        if (file.isFile() && file.exists()) {            file.delete();            flag = true;        }        return flag;    }        /**     * 删除目录(文件夹)以及目录下的文件     * @param   sPath 被删除目录的文件路径     * @return  目录删除成功返回true,否则返回false     */    public static  boolean deleteDirectory(String sPath) {        //如果sPath不以文件分隔符结尾,自动添加文件分隔符        if (!sPath.endsWith(File.separator)) {            sPath = sPath + File.separator;        }        File dirFile = new File(sPath);        //如果dir对应的文件不存在,或者不是一个目录,则退出        if (!dirFile.exists() || !dirFile.isDirectory()) {            return false;        }        boolean flag = true;        //删除文件夹下的所有文件(包括子目录)        File[] files = dirFile.listFiles();        for (int i = 0; i < files.length; i++) {            //删除子文件            if (files[i].isFile()) {                flag = deleteFile(files[i].getAbsolutePath());                if (!flag) break;            } //删除子目录            else {                flag = deleteDirectory(files[i].getAbsolutePath());                if (!flag) break;            }        }        if (!flag) return false;        //删除当前目录        if (dirFile.delete()) {            return true;        } else {            return false;        }    }}

转载于:https://www.cnblogs.com/smileallen/p/3391482.html

你可能感兴趣的文章
【kd-tree】hdu5992 Finding Hotels
查看>>
【函数式权值分块】【分块】bzoj1901 Zju2112 Dynamic Rankings
查看>>
流程控制
查看>>
P4363 [九省联考2018]一双木棋chess(对抗搜索+记忆化搜索)
查看>>
execution plan in sqlserver
查看>>
【WCF之旅】第一回:概述
查看>>
设计模式(四)外观模式
查看>>
RadioGroup实现类似ios的分段选择(UISegmentedControl)控件
查看>>
51Nod 1079 中国剩余定理 Label:数论
查看>>
Spring aop练手
查看>>
Linux下安装SVN服务端
查看>>
Tomcat 部署项目的三种方法
查看>>
删数问题(贪心)
查看>>
蓝桥杯-矩阵翻硬币
查看>>
button设置边宽和圆角
查看>>
Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql'
查看>>
关于并查集问题
查看>>
Implement strStr()
查看>>
hough T
查看>>
cannot download, /home/azhukov/go is a GOROOT, not a GOPATH
查看>>