Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Kwan的解忧杂货铺@新空间代码工作室
SpringBoot-kwan
提交
1d52164e
S
SpringBoot-kwan
项目概览
Kwan的解忧杂货铺@新空间代码工作室
/
SpringBoot-kwan
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SpringBoot-kwan
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
1d52164e
编写于
4月 06, 2024
作者:
Kwan的解忧杂货铺@新空间代码工作室
🐭
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix:添加文件
上级
c1b120e1
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
236 addition
and
0 deletion
+236
-0
src/main/java/com/kwan/springbootkwan/utils/RenameUtil.java
src/main/java/com/kwan/springbootkwan/utils/RenameUtil.java
+174
-0
src/main/resources/sensitive.txt
src/main/resources/sensitive.txt
+62
-0
未找到文件。
src/main/java/com/kwan/springbootkwan/utils/RenameUtil.java
0 → 100644
浏览文件 @
1d52164e
package
com.kwan.springbootkwan.utils
;
import
cn.hutool.core.collection.CollectionUtil
;
import
org.apache.commons.lang3.StringUtils
;
import
java.io.IOException
;
import
java.nio.file.FileAlreadyExistsException
;
import
java.nio.file.Files
;
import
java.nio.file.Path
;
import
java.nio.file.Paths
;
import
java.util.List
;
import
java.util.Random
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
/**
* zip文件重命名
*
* @author : qinyingjie
* @version : 2.2.0
* @date : 2024/2/5 14:50
*/
public
class
RenameUtil
{
/**
* 根据需要修改前缀
*/
// private static final String PREFIX = "毕业设计&课设--";
// private static final String PREFIX = "Matlab系列--";
// private static final String PREFIX = "yolov8系列--";
// private static final String PREFIX = "管理系统系列--";
private
static
final
String
PREFIX
=
"【Html5系列】"
;
// private static final String PREFIX = "";
public
static
void
main
(
String
[]
args
)
throws
IOException
{
for
(
int
i
=
1
;
i
<
2
;
i
++)
{
// 请替换为你需要改名的文件夹路径
// String folderPath = "C:\\data\\resource\\05-待上传\\0" + i;
String
folderPath
=
"D:\\data\\resource\\02-资源批量下载工具\\output"
;
// String folderPath = "C:\\data\\resource\\04-待改名";
// String folderPath = "/Users/qinyingjie/Downloads/资源上传/output";
// 请替换为你敏感词大全文件位置
String
sentitivePath
=
"D:\\data\\vue-springboot-kwan\\src\\main\\resources\\sensitive.txt"
;
Path
path
=
Paths
.
get
(
sentitivePath
);
List
<
String
>
words
=
Files
.
readAllLines
(
path
);
try
{
processZipFiles
(
folderPath
,
words
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
private
static
void
processZipFiles
(
String
folderPath
,
List
<
String
>
words
)
throws
IOException
{
Files
.
walk
(
Paths
.
get
(
folderPath
)).
filter
(
Files:
:
isRegularFile
).
filter
(
path
->
path
.
toString
().
toLowerCase
().
endsWith
(
".zip"
)).
forEach
(
path
->
{
try
{
processSingleZipFile
(
path
,
words
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
});
}
/**
* 处理单个文件
*
* @param filePath
* @param words
* @throws IOException
*/
private
static
void
processSingleZipFile
(
Path
filePath
,
List
<
String
>
words
)
throws
IOException
{
String
oldFileName
=
filePath
.
getFileName
().
toString
();
String
fileName
=
oldFileName
;
if
(!
oldFileName
.
contains
(
PREFIX
))
{
fileName
=
PREFIX
+
oldFileName
;
}
try
{
// 判断是否为敏感文件
Boolean
tag
=
filterSensitiveFile
(
words
,
fileName
);
if
(
tag
)
{
try
{
// 敏感文件
System
.
out
.
println
(
"敏感文件名称:"
+
fileName
);
Files
.
delete
(
filePath
);
System
.
out
.
println
(
"文件删除成功: "
+
filePath
);
}
catch
(
IOException
e
)
{
System
.
err
.
println
(
"无法删除文件: "
+
filePath
);
e
.
printStackTrace
();
}
return
;
}
String
emojiRegex
=
"[\\x{1F600}-\\x{1F64F}\\x{1F300}-\\x{1F5FF}\\x{1F680}-\\x{1F6FF}\\x{1F700}-\\x{1F77F}\\x{1F780}-\\x{1F7FF}\\x{1F800}-\\x{1F8FF}\\x{1F900}-\\x{1F9FF}\\x{1FA00}-\\x{1FA6F}\\x{2600}-\\x{26FF}\\x{2700}-\\x{27BF}\\x{2B50}]"
;
// 使用正则表达式进行匹配和替换
fileName
=
removeEmoji
(
fileName
,
emojiRegex
).
replace
(
"2010"
,
""
)
.
replace
(
"2011"
,
""
)
.
replace
(
"2012"
,
""
)
.
replace
(
"2013"
,
""
)
.
replace
(
"2014"
,
""
)
.
replace
(
"2015"
,
""
)
.
replace
(
"2016"
,
""
)
.
replace
(
"2017"
,
""
)
.
replace
(
"2018"
,
""
)
.
replace
(
"2019"
,
""
)
.
replace
(
"2020"
,
""
)
.
replace
(
"2021"
,
""
)
.
replace
(
"2022"
,
""
)
.
replace
(
"2023"
,
""
)
.
replace
(
"2024"
,
""
)
.
trim
();
// Step 2: Trim file name to 64 characters
if
(
fileName
.
length
()
>
64
)
{
fileName
=
fileName
.
substring
(
0
,
58
)
+
fileName
.
substring
(
fileName
.
length
()
-
4
);
}
if
(!
StringUtils
.
equals
(
oldFileName
,
fileName
))
{
// 获取文件所在的目录
Path
directory
=
filePath
.
getParent
();
// 构建新的文件路径
Path
newPath
=
directory
.
resolve
(
fileName
);
// 使用Files.move()方法进行重命名
Files
.
move
(
filePath
,
newPath
);
System
.
out
.
println
(
"文件重命名成功!"
);
}
}
catch
(
IOException
e
)
{
System
.
out
.
println
(
"文件重命名失败: "
+
e
.
getMessage
());
if
(
e
instanceof
FileAlreadyExistsException
)
{
// 使用Files.move()方法进行重命名
// 获取文件所在的目录
Path
directory
=
filePath
.
getParent
();
// 构建新的文件路径
// 生成0到100之间的随机数
fileName
=
fileName
.
substring
(
0
,
fileName
.
length
()
-
4
)
+
new
Random
().
nextInt
(
101
)
+
".zip"
;
Path
newPath
=
directory
.
resolve
(
fileName
);
try
{
Files
.
move
(
filePath
,
newPath
);
System
.
out
.
println
(
"文件重命名成功!"
);
}
catch
(
IOException
ex
)
{
throw
new
RuntimeException
(
ex
);
}
}
}
}
/**
* 过滤敏感文件
*
* @param words
* @param fileName
* @return
*/
private
static
Boolean
filterSensitiveFile
(
List
<
String
>
words
,
String
fileName
)
{
if
(
CollectionUtil
.
isNotEmpty
(
words
))
{
for
(
String
word
:
words
)
{
if
(
fileName
.
contains
(
word
))
{
return
true
;
}
}
}
return
false
;
}
/**
* 使用正则表达式进行匹配和替换
*
* @param input
* @param emojiRegex
* @return
*/
private
static
String
removeEmoji
(
String
input
,
String
emojiRegex
)
{
Pattern
pattern
=
Pattern
.
compile
(
emojiRegex
);
Matcher
matcher
=
pattern
.
matcher
(
input
);
return
matcher
.
replaceAll
(
""
);
}
}
\ No newline at end of file
src/main/resources/sensitive.txt
0 → 100644
浏览文件 @
1d52164e
装逼
草泥马
特么的
撕逼
玛拉戈壁
爆菊
JB
呆逼
本屌
齐B短裙
法克鱿
丢你老母
达菲鸡
装13
逼格
蛋疼
傻逼
绿茶婊
你妈的
表砸
屌爆了
买了个婊
已撸
吉跋猫
妈蛋
逗比
我靠
碧莲
碧池
然并卵
日了狗
屁民
吃翔
狗东西
淫家
你妹
浮尸国
滚粗
香港
澳门
村长
村官
解放
苏联
深港一体化
一带一路
乌克兰
俄罗斯
恐怖分子
击毙
美国
中国
日本
国民党
共产党
资本主义
疫情
民族
政策
政治
强国
科学上网
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录