import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List; public class ClearFile
{
static String folder = "E:\\NewServer\\Wechat\\JOINT_CARE\\Source";
List<FilePojo> filelist = new ArrayList<FilePojo>();
List<FilePojo> contentlist = new ArrayList<FilePojo>(); public static void main(String[] args) throws IOException
{
ClearFile clear = new ClearFile();
clear.clear(folder);
} public void clear(String folder) throws IOException{
getAllFilePaths(new File(folder));
getContentFiles(new File(folder)); for(FilePojo file : contentlist){
search(file.getPath());
} System.out.println("******************************************删除了以下文件************************************");
for(FilePojo file : filelist){
if(!file.isFind()) {
System.out.println(file.getPath());
new File(file.getPath()).delete();
}
}
} private void getAllFilePaths(File filePath){
File[] files = filePath.listFiles(); for(File file : files){
if(file.isDirectory()){
getAllFilePaths(file);
}else{
String filename = file.getName();
if(filename.contains(".jpg")
|| filename.contains(".png")
|| filename.contains(".gif")
|| filename.contains(".js")
|| filename.contains(".css")) {
FilePojo pojo = new FilePojo();
pojo.setName(file.getName());
pojo.setPath(file.getPath());
filelist.add(pojo);
}
}
}
} private void getContentFiles(File filePath){
File[] files = filePath.listFiles(); for(File file : files){
if(file.isDirectory()){
getContentFiles(file);
}else{
String filename = file.getName(); if(filename.contains(".html")
|| filename.contains(".ftl")
|| filename.contains(".css")
|| filename.contains(".js")
|| filename.contains(".java")) {
FilePojo pojo = new FilePojo();
pojo.setName(file.getName());
pojo.setPath(file.getPath());
contentlist.add(pojo);
}
}
}
} public void search(String filename) throws IOException
{
BufferedReader br = new BufferedReader(new FileReader(filename));
for(String line; (line = br.readLine()) != null; ) {
for(FilePojo file : filelist){
if (line.contains(file.getName())){
file.setFind(true);
}
}
} br.close();
} private class FilePojo{
private String name;
private String path;
private boolean find;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public boolean isFind() {
return find;
}
public void setFind(boolean find) {
this.find = find;
}
}
}

有个小问题:如果文件名为01.jpg, 代码中引用了xx01.jpg,则01.jpg会被认为是需要的文件。

清除eclipse项目中没用的图片、js、css代码的更多相关文章

  1. 在SUBLIME TEXT中安装SUBLIMELINTER进行JS&CSS代码校验

    一:Sublime Text 中需要先安装Package Control.(如果有则无需安装) 安装方法:打开Sublime Text控制台(快捷键Ctrl+`),在控制台粘贴以下代码,按回车执行. ...

  2. WebCollector2.7爬虫框架——在Eclipse项目中配置

    WebCollector2.7爬虫框架——在Eclipse项目中配置 在Eclipse项目中使用WebCollector爬虫非常简单,不需要任何其他的配置,只需要导入相关的jar包即可. Netbea ...

  3. eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法

    eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法 当使用eclipse导入外部的web工程时,有时会提示HttpServletRequest, Serv ...

  4. eclipse项目中启动项目无法载入类

    在eclipse 项目中,当载入jar包后,加载里面的包,可以找到此类,但是编译运行的时候报错java.lang.ClassNotFoundException: 1,路径名未写正确: 2,配置出错; ...

  5. 记录下项目中常用到的JavaScript/JQuery代码二(大量实例)

    记录下项目中常用到的JavaScript/JQuery代码一(大量实例) 1.input输入框监听变化 <input type="text" style="widt ...

  6. 在Sublime Text 3 中安装SublimeLinter,Node.js进行JS&CSS代码校验

    转载自:http://www.wiibil.com/website/sublimelinter-jshint-csslint.html 在Sublime Text中安装SublimeLinter,No ...

  7. 自写脚本实现上线前本地批量压缩混淆 js , css 代码。

    最近做项目遇到一个要求,就是把本地的 js 和 css 进行压缩后再上线,由于之前项目并没有使用 webpack 之类的库,项目上也因为一些机密不能在线上压缩,这无疑给代码打包压缩带来了很大麻烦,于是 ...

  8. 关于Eclipse项目中加入jquery.js文件报错(missing semicolon)问题

    在使用Eclipse3.7及以后的版本的时候,加入jQuery文件会报错(missing semicolon),文件中会显示红色小X,虽然这个错误并不会影响项目的运行,但是这个却会大大的影响到开发人员 ...

  9. 清除Android工程中没用到的资源

    项目需求一改再改,UI一调再调,结果就是项目中一堆已经用不到但却没有清理的垃圾资源,不说工程大小问题,对新进入项目的人或看其他模块的代码的人来说,这些没清理的资源可能也可能会带来困扰,所以最好还是清理 ...

随机推荐

  1. Ubuntu-linux云服务器下安装开启虚拟环境失败解决办法

    为什么要安装虚拟环境? 1.某些项目需要安装旧的包,开发相应功能 2.项目开发时,安装部分环境不希望影响整机环境 如何安装? 首先安装python 安装pip工具 sudo apt-get insta ...

  2. Nginx TLS SNI 不同域名多443转发

    依赖 yum -y install pcre-devel openssl openssl-devel library 编译: mkdir /data/nginx/ -p ./configure --p ...

  3. Sublime Text 3 常用插件

    我在开发过程中,需要经常使用的插件,记录下来,省得到处寻找. Emmet 前端开发必备,您可以轻松快速地编写HTML.一个可以极大地改善工作流程的工具包.Emmet绝对的节省时间. ColorHelp ...

  4. Apache为mysql以及自己的项目设置虚拟路径

    参考 http://www.120xcjl.com  Apache为mysql以及自己的项目设置虚拟路径 1.Apache2.2\conf\httpd.conf中释放: Include conf/ex ...

  5. 网络编程-Mysql-2、各种查询

    1.先创建一个学生表 create table students ( id int auto_increment not null primary key, name varchar(20)  not ...

  6. CSS-Sass

    什么是css预处理器

  7. Hibernate 映射一对一关联关系

    基于外键的方式: 附上代码: public class Manager { private Integer mgrId; private String mgrName; private Departm ...

  8. Java 整数型的进制间的互相转换

    /** * 整数型, 进制间的互相转换 */ public class IntConversion { public static void main(String[] args) { int num ...

  9. BOM 浏览器对象模型_当前窗口的浏览历史 history 对象

    当前窗口的浏览历史 window.history 对象 保存了当前窗口访问过的所有页面网址 由于安全原因,浏览器不允许脚本读取这些地址,但是允许在地址之间导航 history.back() 相当于 h ...

  10. react_app 项目开发

    react_app 项目开发 npm install -g create-react-app npm root -g        // 查看安装包位置 创建项目 create-react-app m ...