パラメータとして何らかのタイプのオブジェクトを取得する関数があります。その場所から拡張子を持つすべてのリソース ファイルを取得する必要があります.yml
。
どうやってするの?
パラメータとして何らかのタイプのオブジェクトを取得する関数があります。その場所から拡張子を持つすべてのリソース ファイルを取得する必要があります.yml
。
どうやってするの?
このコードを利用できます
JarFile jarFile = new JarFile("my.jar");
for(Enumeration<JarEntry> em = jarFile.entries(); em.hasMoreElements();) {
String s= em.nextElement().toString();
if(s.startsWith(("path/to/resource/directory/"))){
ZipEntry entry = jarFile.getEntry(s);
String fileName = s.substring(s.lastIndexOf("/")+1, s.length());
if(fileName.endsWith(".yml")){
InputStream inStream= jarFile.getInputStream(entry);
OutputStream out = new FileOutputStream(fileName);
int c;
while ((c = inStream.read()) != -1){
out.write(c);
}
inStream.close();
out.close();
}
}
}
jarFile.close();
質問の言い回しが少し不明確だと思いますが、正しく理解できれば、指定された jar から .yml ファイル拡張子を持つすべてのファイルを抽出する必要があります。
この場合、既知の jar ファイル パスから単に java.util.JarFile をインスタンス化し、getEntries()を使用できます。このメソッドは、JarEntries の列挙を返します。これを反復して、名前が「.yml」で終わることを確認できます。
FileFilter
ファイルを除外するために使用でき.yaml
ます。この投稿では、1 つを実装して使用する方法の例を示します。