`
sealedbook
  • 浏览: 3310 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java 文件操作

阅读更多
一个File操作类,会不断完善,欢迎批评指正。

import java.io.File;
import java.io.IOException;

public class FileHelper extends File {
	
	/**
	 * 通过将给定路径名字符串转换为抽象路径名来创建一个新的FileHelper实例。
	 * @param pathName
	 */
	public FileHelper(String pathName) {
		super(pathName);
	}
	
	/**
	 * 根据 parent 路径名字符串和 child 路径名字符串创建一个新的FileHelper实例。
	 * @param parent
	 * @param path
	 */
	public FileHelper(File parent,String child) {
		super(parent, child);
	}
	
	/**
	 * 创建路径,包括所有必需但不存在的父目录。
	 * @return
	 */
	public boolean createPath() {
		return super.mkdirs();
	}
	
	/**
	 * 创建文件,包括所有必需但不存在的父目录。
	 * @return
	 */
	public boolean createFile() {
		try {
			super.createNewFile();
			return true;
		} catch(IOException e) {
			this.getParentFileHelper().createPath();
			try {
				super.createNewFile();
				return true;
			} catch(IOException ex) {
				ex.printStackTrace();
			}
		}
		return false;
	}

	/**
	 * 删除文件,包括所有子路径下的文件。
	 */
	public boolean delete() {
		FileHelper[] fileHelperArray = this.listFileHelpers();
		for(FileHelper fileHelper : fileHelperArray) {
			fileHelper.delete();
		} 
		return super.delete();
	}
	
	/**
	 * 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
	 * 如果此抽象路径名不表示一个目录,那么此方法将返回一个空的FileHelper数组。否则返回一个由文件组成的FileHelper对象数组。
	 * @return
	 */
	private FileHelper[] listFileHelpers() {
		String[] ss = super.list();
		if (ss == null) return new FileHelper[0];
		int n = ss.length;
		FileHelper[] fs = new FileHelper[n];
		for (int i = 0; i < n; i++) {
		    fs[i] = new FileHelper(this,ss[i]);
		}
		return fs;
	}
	
	private FileHelper getParentFileHelper() {
		File file = super.getParentFile();
		return new FileHelper(file.toString());
	}
	
}
分享到:
评论
Global site tag (gtag.js) - Google Analytics