package org.nutz.filepool; import java.io.File; import java.io.IOException; /** * 文件池 * * @author zozoh(zozohtnt@gmail.com) */ public interface FilePool { /** * @return 当前池中最大的文件 ID 号 */ long current(); /** * 判断文件池中是否存在一个文件 * * @param fId * 文件的 ID * @param suffix * 文件后缀名 * @return 是否存在这个文件 */ boolean hasFile(long fId, String suffix); /** * 从池中删除一个文件,如果文件不存在,返回null * * @param fId * 文件ID * @param suffix * 文件后缀名 * @return 被删除的文件 */ File removeFile(long fId, String suffix); /** * 在池中创建一个文件 * * @param suffix * 文件的后缀 * @return 文件 * @throws IOException */ File createFile(String suffix); /** * 获取一个文件在池中的 ID。 如果这个文件不在池中,返回 -1 * * @param f * 文件 * @return 文件在池中的 ID,如果不在池中,返回 -1 */ long getFileId(File f); /** * 获取一个文件,如果文件不存在,返回null * * @param fId * 文件ID * @param suffix * 文件后缀名 * @return 文件对象 */ File getFile(long fId, String suffix); /** * 获取一个文件,如果文件不存在,创建它 * * @param fId * @param suffix * @return 文件对象 */ File returnFile(long fId, String suffix); /** * 判断文件池中是否存在一个临时目录 * * @param fId * 临时目录的 ID * * @return 是否存在这个临时目录 */ boolean hasDir(long fId); /** * 从池中删除一个临时目录,如果文件不存在,返回null * * @param fId * 临时目录ID * * @return 被删除的目录 */ File removeDir(long fId); /** * 在池中创建一个临时目录 * * @return 临时目录 * @throws IOException */ File createDir(); /** * 获取一个临时目录,如果临时目录不存在,返回null * * @param fId * 临时目录ID * @return 临时目录对象 */ File getDir(long fId); /** * 获取一个临时目录,如果临时目录不存在,创建它 * * @param fId * * @return 临时目录对象 */ File returnDir(long fId); /** * 清空文件池 * * @throws IOException */ void clear(); }