gpt4 book ai didi

java - 检查 jar 文件的内容

转载 作者:行者123 更新时间:2023-12-01 14:24:29 25 4
gpt4 key购买 nike

我遇到一种情况,我需要读取 Jar 文件的内容并检查其中的内容。

我的问题是我可以读取 jar 文件的内容,但无法根据我的要求检查条目。

我的要求是我应该允许具有 .xml.png 或 .jpg 或 .jpeg.MF 扩展名的 jar >文件这是我的代码。

JarFile connectorjarfile = new JarFile(jarFileStorageocation);
Enumeration<JarEntry> jarEntries1 = connectorjarfile.entries();
int count = 0;
while (jarEntries1.hasMoreElements()) {
System.out.println("Before Jar Validation is going on");
JarEntry jarEntry = (JarEntry) jarEntries1.nextElement();
System.out.println(jarEntry.getName());
String msg1 = "valid Jar File";
String msg2 = "Invalid Jar File";

if ((jarEntry.getName().endsWith(".png") || jarEntry.getName().endsWith(".jpg") || jarEntry.getName().endsWith(".jpeg")) || jarEntry.getName().endsWith(".xml") || jarEntry.getName().endsWith(".MF") || jarEntry.getName().equals("META-INF/")) {
try {
response.getWriter().write(msg1);
break;
} catch (Exception e) {
e.printStackTrace();
}
} else {
count++;

try {
response.getWriter().write(msg2);
break;
} catch (IOException e) {
e.printStackTrace();
}
//break;
}

If循环执行了很多次,因为它会一一检查Jar文件的内容。我想一次检查一个,然后进入循环。建议我。

最佳答案

I want to know only whether it is valid or invalid

然后,您只需要迭代,直到找到无效文件。您需要对代码进行更改的主要内容是将操作从 if/else block 移至循环外部 - 循环内部,只需设置一个标志来指示您何时发现无效条目:

boolean isValid = true;
while (isValid && jarEntries1.hasMoreElements()) {
JarEntry jarEntry = jarEntries1.nextElement();

isValid = jarEntry.getName().endsWith(".png") || jarEntry.getName().endsWith(".jpg") ||
jarEntry.getName().endsWith(".jpeg") || jarEntry.getName().endsWith(".xml") ||
jarEntry.getName().endsWith(".MF") || jarEntry.getName().equals("META-INF/");
}

if (isValid) {
// do whatever you want if the file is valid
} else {
// do whatever you want if the file is not valid
}
<小时/>

旁注:

您不需要将结果从 nextElement() 显式转换为 JarEntry - jarEntries1 已经是一个 Enumeration 类型为 JarEntry

关于java - 检查 jar 文件的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17275619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com