`
Listen_ing
  • 浏览: 37005 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

FileTool (文件工具类)

阅读更多
public class FileTool {


    private static final Log log = LogFactory.getLog(FileTool.class);
    private static final int BUFFER_SIZE = 16 * 1024 ;


    /**
     * 删除目录和文件
     *
     * @param fi
     * @throws IOException
     */
    public static boolean deleteDirectory(File fi) throws IOException {
       if ((null != fi) && (fi.isDirectory() || fi.isFile())) {
           // 如果fi是文件直接删除
           if (fi.isFile()) {
              fi.delete();
              return true;
           } else { // 如果是目录,获取该目录下的所有文件和文件夹
              File[] files = fi.listFiles();
              int sz = files.length;
              for (int i = 0; i < sz; i++) {
                  if (files[i].isDirectory()) {
                     deleteDirectory(files[i]);
                  } else {
                     files[i].delete();
                  }
              }
           }
           return true;
       } else {
           log.error("文件或目录删除失败", new IllegalArgumentException("异常信息: " + fi
                  + " 不是一个目录或文件 "));
           throw new IllegalArgumentException("异常信息: " + fi + " 不是一个目录或文件 ");
       }
    }
   
   
    public static boolean deleteDirectoryAndParent(File fi) throws IOException {
       if ((null != fi) && (fi.isDirectory() || fi.isFile())) {
           // 如果fi是文件直接删除
           if (fi.isFile()) {
              fi.delete();
              return true;
           } else { // 如果是目录,获取该目录下的所有文件和文件夹
              File[] files = fi.listFiles();
              int sz = files.length;
              for (int i = 0; i < sz; i++) {
                  if (files[i].isDirectory()) {
                     deleteDirectoryAndParent(files[i]);
                  } else {
                     files[i].delete();
                  }
              }
           }
           fi.delete();
           return true;
       } else {
           log.error("delete failed");
           throw new IllegalArgumentException("异常信息: " + fi + " 不是一个目录或文件 ");
       }
    }
    /**
     * 根据路径删除文件
     * @param filename
     * @return
     */
    public static boolean deleteFile(String filename){
       File file = new File(filename);
       if(file.exists()){
           return file.delete();
       }
       return false;
    }
   
    /**
     * 创建目录
     * @param directoryName
     * @return boolean
     * @since Jan 6, 2010
     */
    public static boolean createDirectory(String directoryName){
       File file=new File(directoryName);
       try {
           return file.mkdirs();
       } catch (Exception e) {
           log.error("create directory failed",e);
           return false;
       }
    }
   
    /**
     * 文件复制
     * @param src 源文件
     * @param dst 目标文件
     * @since Jan 21, 2010
     */
    public static void copy(File src, File dst) {
       InputStream in = null;
       OutputStream out = null;
       try {
           in = new BufferedInputStream(new FileInputStream(src), BUFFER_SIZE);
           out = new BufferedOutputStream(new FileOutputStream(dst),
                  BUFFER_SIZE);
           byte[] buffer = new byte[BUFFER_SIZE];
           int len = 0;
           while ((len = in.read(buffer)) > 0) {
              out.write(buffer, 0, len);
           }
       } catch (Exception e) {
           e.printStackTrace();
       } finally {
           if (null != in) {
              try {
                  in.close();
              } catch (IOException e) {
                  e.printStackTrace();
              }
           }
           if (null != out) {
              try {
                  out.close();
              } catch (IOException e) {
                  e.printStackTrace();
              }
           }
       }
    }
    /**
     * 根据多媒体文件格式,获取图片文件类型
     * @param mimeType 多媒体文件类型
     * @return String
     * @since Jan 21, 2010
     */
    public static String getPicFileType(String mimeType){
       try {
           String typename = "";
           if (mimeType.equals("image/pjpeg")) {
              typename = ".jpg";
           } else if (mimeType.equals("image/bmp")) {
              typename = ".bmp";
           } else if (mimeType.equals("image/png")) {
              typename = ".png";
           } else if (mimeType.equals("image/gif")) {
              typename = ".gif";
           } else if (mimeType.equals("image/jpeg")) {
              typename = ".jpg";
           } else if (mimeType.equals("image/jpg")) {
              typename = ".jpg";
           } else if (mimeType.equals("image/x-png")) {
              typename = ".png";
           }
           return typename;
       } catch (Exception e) {
           log.error("get pic file type failed",e);
       }
       return null;
    }
   
    /**
     * 修改当前系统毫秒时间
     * @param fileType
     * @return String
     * @since Jan 22, 2010
     */
    public static String getMTimeFileName(String fileType){
       try {
           Calendar cal=Calendar.getInstance();
           long mTime=cal.getTimeInMillis();
           return String.valueOf(mTime)+fileType;
       } catch (Exception e) {
           log.info("get Time In Millis to change the file name failed",e);
       }
       return null;
    }
   
    /**
     * 获取以长日期命名的文件名称
     * @param fileName
     * @return String
     * @since Jan 22, 2010
     */
    @SuppressWarnings("static-access")
    public static String getLongDataFileName(String fileType){
       try {
           Calendar calendar=Calendar.getInstance();
        StringBuffer fileName=new StringBuffer();
        fileName.append(calendar.get(calendar.YEAR));
        fileName.append(calendar.get(calendar.MONTH));
        fileName.append(calendar.get(calendar.DATE));
        fileName.append(calendar.get(calendar.HOUR_OF_DAY));
        fileName.append(calendar.get(calendar.MINUTE));
        fileName.append(calendar.get(calendar.SECOND));
        fileName.append(calendar.get(calendar.MILLISECOND));
        fileName.append(fileType);
        return fileName.toString();
       } catch (Exception e) {
           log.info("get long data to change file name failed",e);
       }
       return null;
    }
}
分享到:
评论

相关推荐

    JAVA java工具类大全

    11:FileTool 文件工具类 12:HttpRequestUtils 13:HttpUtils 14:IdGenerator 15:ImageCut 图片剪切 16:ImageUtils 17:JsonTool 18:JsonTools json与对象转化的工具类 19:JsonVo 20:MathsTool 取一个int十...

    filetool_43171

    为了应对这类人群在项目管理和文件操作上的特殊需求,"filetool_43171"诞生了。它是一个专门针对VC 6.0设计的工具,旨在简化开发者在处理项目文件时的操作流程,使得文件管理变得更加高效和便捷。 从描述中我们可以...

    fileTool 及使用方法

    **文件工具fileTool详解及其使用方法** 在计算机编程和日常办公中,经常遇到不同软件之间的兼容性问题。尤其是在老版本的开发环境中,如VC6.0,与现代应用程序,如Office系列,可能存在交互上的障碍。为了解决这类...

    VC文件工具(FileTool).rar

    1. 下载并解压"VC文件工具(FileTool).rar"压缩包,确保获取到FileTool的执行文件。 2. 关闭所有正在运行的VC6实例,以防止在操作过程中出现数据冲突。 3. 运行FileTool,按照提示进行操作。可能需要指定VC6的安装...

    File tool 解决vc在Win7下打开文件错误的问题

    FileTool.dll很可能是这个工具的核心组件,用于处理文件相关的操作。 在Windows 7环境下,VC可能遇到的文件打开错误包括但不限于以下几种: 1. **权限问题**:用户可能没有足够的权限访问或操作特定文件。在...

    filetool工具

    然后,在VC6.0的源代码中通过`#pragma comment(lib, "FileTool.lib")`来链接对应的库,并且在需要调用Visio功能的地方,通过`#include "FileTool.h"`引入头文件,即可使用工具提供的函数和类。 值得注意的是,使用...

    FileTool.rar

    标题“FileTool.rar”可能指的是一个包含解决特定问题或提供工具的压缩文件,可能是为了修复在使用Microsoft Visual C++ 6.0(Service Pack 6,简称VC6.0)时遇到的问题。描述中提到的问题是用户在尝试使用VC6.0打开...

    替换 Visual C++ 中的打开和添加到项目功能FileTool工程文件

    FileTool.exe是一个可能用于处理工程文件的工具,它可能包含了自定义的文件操作功能。在"描述"中提到,"FileTool工程经编译后的工程目录 Debug目录下有已编译的FileTool.dll",这表明FileTool是一个动态链接库(DLL...

    超过4G的巨大文件访问工具类

    总的来说,BigFileTool是一个旨在简化超过4GB大文件访问的C++工具类,它利用了Windows系统特性,如内存映射文件,并提供了安全和高效的接口,帮助开发者在处理大文件时避免了常见的技术难题。对于需要处理大量数据的...

    FileTool_0.1.jar

    一个简单的文件操作包装类,和文件结构的类,(能简单的来表示一些文件类型) (只有经过一些简单的测试,并且还没有做好文档。。。。。汗,太懒了,其实我特别想无分的,废话,这么垃圾的上传资源,没测试,没文档...

    filetool.zip

    "filetool.zip"这个压缩包文件似乎是为了帮助用户解决一个具体的问题:Visual C++ 6.0(简称VC6.0)与Microsoft Office 2007之间的不兼容性。这个问题在当时是比较普遍的,因为VC6.0是微软发布的一个非常经典的开发...

    解决VC++ 6.0打开或添加工程文件崩溃或无反应所用工具filetool.exe

    总的来说,`filetool.exe`是VC++ 6.0用户处理工程文件问题的一个宝贵资源,它可以帮助我们克服旧工具在新环境下的局限,保持对经典代码的访问和管理能力。同时,了解如何有效地利用这类工具,也是提升开发效率和解决...

    FileTool源码

    针对这一问题,"FileTool"是一款专门设计的VC IDE插件,它旨在解决VC无法添加文件的困扰,为开发者提供便利。 "FileTool"源码的分析和学习可以帮助我们理解如何扩展IDE的功能,以及如何处理文件管理相关的操作。...

    FileTool.dll

    win7中安装vc6.0,添加文件即出现崩溃,未响应。解决该问题,所需的dll文件。

    PHP上传视频文件图片工具类

    在批量上传方面,工具类需要能够处理多个文件,循环遍历`$_FILES`数组中的所有部分,对每个文件进行独立的处理。这通常涉及异步上传和进度条显示,以便提升用户体验。 返回JSON数据则是为了让前端能够获取到上传...

    解决VC++6.0的open死机问题+filetool.dll与.exe及操作说明

    "open死机问题"可能是由于内存管理、线程同步、文件I/O操作不当或者是特定DLL文件(如filetool.dll)的兼容性问题导致的。本文将详细介绍如何诊断和解决这个问题,并提供filetool.dll与.exe之间的关系以及如何正确...

    VC++6.0补丁FileTool解决VC++6.0打开文件崩溃的问题于20180812在win10家庭版上亲测可用

    总的来说,VC++6.0在Win10家庭版上的使用虽然存在挑战,但借助"FileTool"补丁和相关资源,开发者可以克服这些障碍,继续享受这款经典工具带来的便利。这同时也提醒我们,随着技术的发展,理解和适应新老技术的交互是...

    filetool配置

    "filetool"是一个实用工具,可能是专门为了解决这类问题而设计的。它可能提供了额外的功能或者替代了VC++6.0原生的一些功能,以帮助开发者更好地管理和操作项目中的文件。在使用filetool之前,我们需要对其进行配置...

    自己封装的一些文件(夹)操作和txt文件读写的工具类 哈哈(ExtUtil0.2)

    首先,工具类(Tool Class)是编程中的一种常见设计模式,它包含一组静态方法,用于执行特定任务。在Java编程中,工具类通常用于封装一些通用功能,避免代码重复,提高代码的可复用性和可维护性。在这个项目中,`...

    signtool工具,生成CAT文件

    **signtool工具详解:生成CAT文件在Windows 10环境中的应用** 在Windows操作系统中,安全性是至关重要的。为了确保软件的完整性和安全性,Microsoft提供了`signtool`工具,这是一个强大的签名和验证工具,用于对...

Global site tag (gtag.js) - Google Analytics