清除eclipse项目中没用的图片、js、css代码
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代码的更多相关文章
- 在SUBLIME TEXT中安装SUBLIMELINTER进行JS&CSS代码校验
一:Sublime Text 中需要先安装Package Control.(如果有则无需安装) 安装方法:打开Sublime Text控制台(快捷键Ctrl+`),在控制台粘贴以下代码,按回车执行. ...
- WebCollector2.7爬虫框架——在Eclipse项目中配置
WebCollector2.7爬虫框架——在Eclipse项目中配置 在Eclipse项目中使用WebCollector爬虫非常简单,不需要任何其他的配置,只需要导入相关的jar包即可. Netbea ...
- eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法
eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法 当使用eclipse导入外部的web工程时,有时会提示HttpServletRequest, Serv ...
- eclipse项目中启动项目无法载入类
在eclipse 项目中,当载入jar包后,加载里面的包,可以找到此类,但是编译运行的时候报错java.lang.ClassNotFoundException: 1,路径名未写正确: 2,配置出错; ...
- 记录下项目中常用到的JavaScript/JQuery代码二(大量实例)
记录下项目中常用到的JavaScript/JQuery代码一(大量实例) 1.input输入框监听变化 <input type="text" style="widt ...
- 在Sublime Text 3 中安装SublimeLinter,Node.js进行JS&CSS代码校验
转载自:http://www.wiibil.com/website/sublimelinter-jshint-csslint.html 在Sublime Text中安装SublimeLinter,No ...
- 自写脚本实现上线前本地批量压缩混淆 js , css 代码。
最近做项目遇到一个要求,就是把本地的 js 和 css 进行压缩后再上线,由于之前项目并没有使用 webpack 之类的库,项目上也因为一些机密不能在线上压缩,这无疑给代码打包压缩带来了很大麻烦,于是 ...
- 关于Eclipse项目中加入jquery.js文件报错(missing semicolon)问题
在使用Eclipse3.7及以后的版本的时候,加入jQuery文件会报错(missing semicolon),文件中会显示红色小X,虽然这个错误并不会影响项目的运行,但是这个却会大大的影响到开发人员 ...
- 清除Android工程中没用到的资源
项目需求一改再改,UI一调再调,结果就是项目中一堆已经用不到但却没有清理的垃圾资源,不说工程大小问题,对新进入项目的人或看其他模块的代码的人来说,这些没清理的资源可能也可能会带来困扰,所以最好还是清理 ...
随机推荐
- 4.9cf自训9..
cf401D 状态压缩dp好题,每次把新加入集合的数字放在最后即可 /* 它可以通过重新排列数字n, 它没有任何前导零, x除以m后的余数等于0. 每次把新加的数放在最后 dp[i][j]表示状态i下 ...
- VIM编辑常用命令
1.临时使用获取root权限保存文件 :w !sudo tee % 2.多标签编辑文件 :tabnew file 3.切换标签 :tabm N (N为第几个标签,从0开始)
- HTTP Status 500 - java.lang.reflect.InvocationTargetException
type Exception report message java.lang.reflect.InvocationTargetException description The server enc ...
- [BZOJ4913][SDOI2017]遗忘的集合
题解: 首先先弄出$f(x)$的生成函数$$f(x)=\prod_{i=1}^{n} {{(\frac{1}{1-x^i})}}^{a[i]}$$因为$f(x)$已知,我们考虑利用这个式子取推出$a[ ...
- 必须了解的Object知识
必须了解的Object知识 作为Java中所有类的根类,Object提供了很多基础的方法,我们经常会覆写它的方法,但很多时候因为不了解这些方法内在的含义以及与其他方法之间的关系而错误的覆写.下面介绍一 ...
- C++运算符重载——输入/输出运算符
为了与IO标准库一致,重载输入输出运算符函数的第一个行参应该是流的引用,第二个行参是对象的引用. 如果重载为类的成员函数,第一个行参应该是对象的引用,第二个行参是流的引用. 使用方式是 ClassOb ...
- 基于Python & Opencv 图像-视频-处理算法
Alg1:图像数据格式之间相互转换.png to .jpg(其他的请举一反三) import cv2 import glob def png2jpg(): images = glob.glob('*. ...
- web理论知识--网页访问过程(附有Django的web项目访问流程)
当我们闲暇之余想上网看看新闻,或者看个电影,通常的操作是:打开电脑.打开浏览器.输入网址.浏览页面信息.点击自己感兴趣的连接......那么有没有想过,这些网页从哪里来的?过程中计算机又做了什么事情了 ...
- 教你正确打开async/await关键字的使用
这段时间在项目开发中看到了一些async/await的使用,在aspnet core的host组件源码中也看到了许多的async/await代码.在开发时,正确的使用了async/await是可以提高 ...
- 为什么Dotnet Core的DI默认是在控制器中注入
转载请注明出处: https://www.cnblogs.com/zhiyong-ITNote/ DI的大概过程抽象成如下:接口对象 <-- 实现对象 <-- 抽象对象 在抽象对象中引入接 ...