mirror of
https://gitee.com/dcren/initializr.git
synced 2025-05-06 21:58:08 +08:00
Be more defensive when extracting filename from URI
Closes gh-827
This commit is contained in:
parent
719c368a66
commit
f33a661074
@ -17,6 +17,7 @@
|
||||
package io.spring.initializr.generator.project.contributor;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.function.Predicate;
|
||||
@ -55,8 +56,8 @@ public class MultipleResourcesProjectContributor implements ProjectContributor {
|
||||
Resource root = this.resolver.getResource(this.rootResource);
|
||||
Resource[] resources = this.resolver.getResources(this.rootResource + "/**");
|
||||
for (Resource resource : resources) {
|
||||
String filename = resource.getURI().toString().substring(root.getURI().toString().length() + 1);
|
||||
if (resource.isReadable()) {
|
||||
String filename = extractFileName(root.getURI(), resource.getURI());
|
||||
Path output = projectRoot.resolve(filename);
|
||||
Files.createDirectories(output.getParent());
|
||||
Files.createFile(output);
|
||||
@ -67,4 +68,9 @@ public class MultipleResourcesProjectContributor implements ProjectContributor {
|
||||
}
|
||||
}
|
||||
|
||||
private String extractFileName(URI root, URI resource) {
|
||||
String candidate = resource.toString().substring(root.toString().length());
|
||||
return StringUtils.trimLeadingCharacter(candidate, '/');
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user