清除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一调再调,结果就是项目中一堆已经用不到但却没有清理的垃圾资源,不说工程大小问题,对新进入项目的人或看其他模块的代码的人来说,这些没清理的资源可能也可能会带来困扰,所以最好还是清理 ...
随机推荐
- selenium执行JavaScript语句:控制滚动条 聚焦元素 改变下拉选项
1. 执行js脚本 控制滚动条 # http://www.cnblogs.com/yoyoketang/p/6128655.html In [347]: js = "window.scrol ...
- %E6%9D%8E%E9%9B%B7是什么编码
在这个网站上可以进行解码http://tool.chinaz.com/Tools/URLEncode.aspx
- 圆周率pi π 与 角度的对应关系
圆周率pi π 与 角度的对应关系 π 180° π/2 90° π/4 45° π/6 30°
- drf视图组件、认证组件
视图组件 1.基本视图 url(r'^publish/$', views.PublishView.as_view()), url(r'^publish/(?P<pk>\d+)/$', vi ...
- elasticsearch5.5.3 源码学习 idea下源码编译
1.学习elasticsearch 源码,通过搜索“elasticsearch源码”,进行相关搜索. 2.因源码gradle编译,选择gradle-3.5可以编译通过,对应elasticsearc ...
- 自定义MVC实现登录案例
MVC框架: MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离 ...
- 如何在 code blocks中使用 mkl库
为了安装caffe, 所以安装了mkl, 现在想在codeblock的项目中使用mkl. 设置mkl环境变量: mkl安装好后默认是在/opt/intel/mkl中,其中/opt/intel/mkl/ ...
- mac上adb command not found
第一种报错(使用的自带mac命令行) bash: adb: command not found 1.vim ~/.bash_profile ,如果.bash_profile不存在,先touch ~/. ...
- Windows中使用ssh利用公钥登入远程服务器
方式:使用 Winscp 密钥登录 我们平时开发多会使用 ftp 来上传下载文件,尤其是很多 Linux 环境下. 其实 Linux 默认是不提供 ftp 的,需要你额外安装 FTP 服务 ...
- Tensorflow Chapter-6
|--子节点 |--单位节点矩阵:长宽为1,深度不限 |--多维度的二维卷积,和之前的理解不一样:应该是每个通道都要计算在下一层的每个节点上:2*2*3,f=1*1*5 -> 2*2*3*5个参 ...