forked from Gitlink/microservices
parent
084042891d
commit
fac5f3158f
|
|
@ -195,16 +195,37 @@ public class AiSkillParseServiceImpl implements IAiSkillParseService {
|
|||
}
|
||||
|
||||
private String findAndReadReadmeMd(ZipFile zf, List<FileTreeNode> nodes) throws IOException {
|
||||
// 优先查找根目录 README.md
|
||||
ZipArchiveEntry readmeEntry = zf.getEntry(README_MD_FILE);
|
||||
// 优先查找根目录 README.md(忽略大小写)
|
||||
Enumeration<ZipArchiveEntry> entries = zf.getEntries();
|
||||
ZipArchiveEntry readmeEntry = null;
|
||||
|
||||
// 查找根目录下的 README.md
|
||||
while (entries.hasMoreElements()) {
|
||||
ZipArchiveEntry entry = entries.nextElement();
|
||||
String fileName = new File(entry.getName()).getName();
|
||||
if (README_MD_FILE.equalsIgnoreCase(fileName) && entry.getName().indexOf('/') == -1) {
|
||||
readmeEntry = entry;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (readmeEntry != null && !readmeEntry.isDirectory()) {
|
||||
return readZipEntryContent(zf, readmeEntry);
|
||||
}
|
||||
|
||||
// 其次查找顶层唯一文件夹下的 README.md
|
||||
// 其次查找顶层唯一文件夹下的 README.md(忽略大小写)
|
||||
String topFolder = findSingleTopFolder(nodes);
|
||||
if (topFolder != null) {
|
||||
readmeEntry = zf.getEntry(topFolder + "/" + README_MD_FILE);
|
||||
entries = zf.getEntries(); // 重置枚举
|
||||
while (entries.hasMoreElements()) {
|
||||
ZipArchiveEntry entry = entries.nextElement();
|
||||
String expectedPath = topFolder + "/" + README_MD_FILE;
|
||||
if (expectedPath.equalsIgnoreCase(entry.getName())) {
|
||||
readmeEntry = entry;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (readmeEntry != null && !readmeEntry.isDirectory()) {
|
||||
return readZipEntryContent(zf, readmeEntry);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue