文档章节

FileManage

金丨豆
 金丨豆
发布于 2016/11/08 11:47
字数 605
阅读 19
收藏 0
点赞 0
评论 0

本人博客地址:http://my.oschina.net/lijindou/blog

转载请标明原址:https://my.oschina.net/lijindou/blog/783661

 

每个方法我都写的 有 注释。

直接上代码:

import java.io.File;

/**
 * Created by admin on 2016/8/18.
 */
public class FileManage {
    /**
     * @param URI 文件的路径
     * @return boolean
     * @effect 检查文件是否存在
     */
    public static boolean fileIsExists(String URI) {
        try {
            File f = new File(URI);
            if (!f.exists()) {
                return false;
            }

        } catch (Exception e) {
            // TODO: handle exception
            return false;
        }
        return true;
    }

    /**
     * @param fileURI 文件的路径
     * @return boolean
     * @effect 检查文件是否存在
     */
    public static boolean isFile(String fileURI) {
        File f = new File(fileURI);
        if (f.exists()) {
            return true;
        } else {
            return false;
        }
    }

    /**
     * @param filePath 被删除文件的文件名
     * @return 文件删除成功返回true,否则返回false
     * @effect 删除单个文件
     */
    public static boolean deleteFile(String filePath) {
        File file = new File(filePath);
        if (file.isFile() && file.exists()) {
            return file.delete();
        }
        return false;
    }

    /**
     * @param filePath 被删除目录的文件路径
     * @return 目录删除成功返回true,否则返回false
     * @effect 删除文件夹以及目录下的文件
     */
    public static boolean deleteDirectory(String filePath) {
        boolean flag = false;
        //如果filePath不以文件分隔符结尾,自动添加文件分隔符
        if (!filePath.endsWith(File.separator)) {
            filePath = filePath + File.separator;
        }
        File dirFile = new File(filePath);
        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;
        //删除当前空目录
        return dirFile.delete();
    }

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

    /**
     * @param string 文件夹路径
     * @return int 返回的   该  路径下的 图片的数量
     * @effect 输入路径 返回 的是该路径下的图片文件的数量
     */
    private int getFiles(String string) {
        int i = 0;
        // TODO Auto-generated method stub
        File file = new File(string);
        File[] files = file.listFiles();
        for (int j = 0; j < files.length; j++) {
            String name = files[j].getName();
            if (files[j].isDirectory()) {
                String dirPath = files[j].toString().toLowerCase();
                System.out.println(dirPath);
                getFiles(dirPath + "/");
            } else if (files[j].isFile() & name.endsWith(".jpg") ||//这里 写的是图片的格式,将这个格式 换掉后,也可以检查其他的格式
                    name.endsWith(".png") || name.endsWith(".bmp") ||
                    name.endsWith(".gif") || name.endsWith(".jpeg")) {
                System.out.println("FileName===" + files[j].getName());
                i++;
            }
        }
        return i;
    }

}

 

© 著作权归作者所有

共有 人打赏支持
金丨豆
粉丝 8
博文 33
码字总数 22754
作品 0
深圳
程序员
路由配置configRoute出问题了

me.add("/", CommonController.class); me.add("/filemanage", FileManage.class); me.add("/fileupload", FileUpload.class); 路由这样配置的,但是输入localhost/filemanage的时候,filem......

Just_me
2014/01/18
330
2
程序运行一段时间后,Tomcat假死

“Tomcat假死”表现在:能够打开系统的登录JSP页面,点击登录后无反应,也没有什么错误打印。 系统基于SSH开发,内部系统,并发量并不大。 在假死后,去关闭tomcat,会打印很多内容。 Jul 17...

qiushui
2015/07/20
3.6K
0
iOS学习之iOS沙盒(sandbox)机制和文件操作之NSFileManager

1、在Documents里创建目录 创建一个叫test的目录,先找到Documents的目录, [cpp]view plaincopy NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomain......

china008
2014/05/03
0
0
IOS沙盒(sandbox)机制和文件操作(三)

我们看看NSFileManager如何使用。包括创建文件,目录,删除,遍历目录等。 1、在Documents里创建目录 创建一个叫test的目录,先找到Documents的目录, [cpp]view plaincopy NSArray *paths =...

jackyyang
2012/07/14
0
3
IOS开发之异步加载网络图片并缓存本地实现瀑布流(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 [objc] view plaincopy </pre><pre name="code" class="objc"> [objc] view plaincopy </pre><pre name="code" class="objc"> [objc]......

Align
2016/01/05
90
0
IOS开发之异步加载网络图片并缓存本地实现瀑布流(二)

在上一篇博客中,我们实现了异步加载图片的功能,由于上次的时间问题,讲的比较简单所以在这篇文章中,我对前面代码中涉及到得关键代码再做一次详细的解释。 先看一个函数, [objc] view pl...

Align
2016/01/05
42
0
多线程 java文件复制,文件提取,删除,zip压缩工具

配置说明: <!-- 配置文件说明 --> <!-- property:变量节点,配置文件中可以通过${变量名称}引用该变量值 property属性: { name:变量名称 value:变量值 type:变量类型,目前只支持时间类型dat...

Sobey
2016/07/04
136
0

没有更多内容

加载失败,请刷新页面

加载更多
java按比例之原图生成缩略图

package com.wxp.test; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import javax.imageio.ImageIO; import sun.......

恋码之子
5分钟前
0
0
SpringCloud 微服务 (十五) 服务容错 Hystrix

壹 工作中的微服务架构,某个服务通常会被多个服务调用或者多层调用完成需求,如果某个服务不可用,导致一个系统功能不可用或者服务直接没用了的情况,这种情况称为雪崩效应 有A服务调用B服务,B服...

___大侠
7分钟前
0
0
Spring框架中的设计模式(五)

Spring框架中的设计模式(五) 通过以前的4篇文章,我们看到Spring采用了大量的关于创建和结构方面的设计模式。本文将描述属于行为方面的两种设计模式:命令和访问者。 前传: Spring框架中的...

瑞查德-Jack
10分钟前
0
0
解决phpstorm运行很卡问题!

phpStorm一旦达到这个临界值,所有智能提示、自动补全都失效了 这TM就很尴尬了,顿时感觉自己就是个废人了,纯手写代码跟便秘一样 众所周知phpStorm基于JAVA,那么这个内存限制肯定跟JAVA的虚...

sjcehui2010
13分钟前
0
0
javascript前端AES加密解密

参考了一下网上的代码加上自已的一些想法,修改,key也可以是中文, 要引入一个aes.js的js文件。 html代码 <html> <head> <title>AES加解密</title> <meta http-equiv="Content-Type"......

oisan_
16分钟前
0
0
MacOS和Linux内核的区别

有些人可能认为MacOS和Linux内核有相似之处,因为它们可以处理类似的命令和类似的软件。甚至有人认为苹果的MacOS是基于linux的。事实上,这两个内核的历史和特性是非常不同的。今天,我们来看...

六库科技
21分钟前
0
0
Vue.js-自定义事件例子

自定义组件的 v-model 2.2.0+ 新增 一个组件上的 v-model 默认会利用名为 value 的 prop 和名为 input 的事件,但是像单选框、复选框等类型的输入控件可能会将 value 特性用于不同的目的。m...

tianyawhl
24分钟前
0
0
mybatis中获取sqlSession的源码分析

0 SqlSessionFactoryBuilder类 SqlSessionFactoryBuilder sqlSessionFacotory=SqlSessionFactoryBuilder().build(reader) public SqlSessionFactory build(Reader reader) { return build(re......

writeademo
25分钟前
0
0
RobotThread.cpp

#include "RobotThread.h"RobotThread::RobotThread(int argc, char** pArgv, const char * topic) :m_Init_argc(argc), m_pInit_argv(pArgv), m_topic(topic){/** ......

itfanr
27分钟前
0
0
防御ddos攻击的常见方法

DDoS攻击是一种特殊形式的拒绝服务攻击。它利用多台已经被攻击者所控制的机器对某一台单机发起攻击,在带宽相对的情况下,被攻击的主机很容易失去反应能力。分布式拒绝服务攻击(DDoS) 是一种...

上树的熊
27分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部