Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录

Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录

这里先简单的贴下常用的方法:

File.separator 			//当前系统文件分隔符  
File.pathSeparator		//

File f = new File("testFile.txt");
f.createNewFile();
f.exists()
f.delete();
f.mkdir();
f.list();
f.listFiles();
f.isDirectory()

删除文件以及文件夹

删除单个文件

/**
 * 删除单个文件
 * @param   sPath    被删除文件的文件名
 * @return 单个文件删除成功返回true,否则返回false
 */
public boolean deleteFile(String sPath) {
    flag = false;
    file = new File(sPath);
    // 路径为文件且不为空则进行删除
    if (file.isFile() && file.exists()) {
        file.delete();
        flag = true;
    }
    return flag;
}

删除文件夹

`Java`
/**
 * 删除目录(文件夹)以及目录下的文件
 * @param   sPath 被删除目录的文件路径
 * @return  目录删除成功返回true,否则返回false
 */
public 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;
    }
    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;
    }
}

开放方法,可传入文件或文件夹路径

/**
 *  根据路径删除指定的目录或文件,无论存在与否
 *@param sPath  要删除的目录或文件
 *@return 删除成功返回 true,否则返回 false。
 */
public boolean DeleteFolder(String sPath) {
    flag = false;
    file = new File(sPath);
    // 判断目录或文件是否存在
    if (!file.exists()) {  // 不存在返回 false
        return flag;
    } else {
        // 判断是否为文件
        if (file.isFile()) {  // 为文件时调用删除文件方法
            return deleteFile(sPath);
        } else {  // 为目录时调用删除目录方法
            return deleteDirectory(sPath);
        }
    }
}

获取文件(夹)的父目录

1.绝对路径获取
假设路径为:"d://fatherDir/childrenDir/secondDir/thirdDir"

	File f = new File("d://fatherDir/childrenDir/secondDir/thirdDir");
	System.out.println(f.getParent());	//d:\fatherDir\childrenDir\secondDir

输出结果:d:\fatherDir\childrenDir\secondDir

2.相对路径获取

	File f = new File("thirdDir");
	System.out.println(f.getParent());	//null

输出结果:null

也就是说,只有绝对路径使用getParent()方法可以获取到父级目录路径。
如何获取相对路径父级目录?

	File f = new File("thirdDir");
	File ff = new File(f.getAbsolutePath());
	String copyPath = ff.getParentFile().getParent() + File.separator + "basdata";

通过getAbsolutePath()获取相对目录的绝对路径给新File对象,然后在调用getParent()

相关链接

http://kxjhlele.iteye.com/blog/323657
java中的IO整理
http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html
http://www.zaojiahua.com/1453.html
Java getPath() getAbsolutePath() getCanonicalPath()区别

你可能感兴趣的:(java io)