Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static List<String> getFilenamesForDirnameFromCP(String directoryName) throws
- URISyntaxException, IOException {
- List<String> filenames = new ArrayList<>();
- URL url = CustomContainersMainClass.class.getClassLoader().getResource(directoryName);
- if (url != null) {
- if (url.getProtocol().equals("file")) {
- File file = Paths.get(url.toURI()).toFile();
- if (file != null) {
- File[] files = file.listFiles();
- if (files != null) {
- for (File filename : files) {
- filenames.add(filename.toString());
- }
- }
- }
- } else if (url.getProtocol().equals("jar")) {
- String dirname = directoryName + "/";
- String path = url.getPath();
- String jarPath = path.substring(5, path.indexOf("!"));
- try (JarFile jar = new JarFile(URLDecoder.decode(jarPath, StandardCharsets.UTF_8.name()))) {
- Enumeration<JarEntry> entries = jar.entries();
- while (entries.hasMoreElements()) {
- JarEntry entry = entries.nextElement();
- String name = entry.getName();
- //System.out.println("name " + name + "entry " + entry + jarPath);
- if (name.startsWith(dirname) && !dirname.equals(name)) {
- URL resource = CustomContainersMainClass.class.getClassLoader().getResource(name);
- if (resource != null) {
- filenames.add(name);
- } else
- Common.log("Missing files in plugins/" + CustomContainersMainClass.getInstance() + ".jar/" + directoryName + "/, contact the author of " + CustomContainersMainClass.getInstance().getName() + ".");
- }
- }
- }
- }
- }
- return filenames;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement