从jar

时间:2016-11-04 03:04:11

标签: java file

所以这是我的问题: 我这里有一个程序,可以获取certian目录中的所有文件和文件夹:

import java.io.File;
import java.util.ArrayList;

public class getFilesAndFolders {

private String[] filesAndFolders = {};
private ArrayList<String> filesAndFolders2 = new ArrayList<String>(filesAndFolders.length +1);

public String[] get(String location){

    File files = new File(location);
    File[] fList = files.listFiles();

    for(File fileLoop : fList){
        if(files.isDirectory()){
            String placeHolder = fileLoop.getPath();
            filesAndFolders2.add(placeHolder);
            initialise();
        }else if(files.isFile()){
            String placeHolder = fileLoop.getPath();
            filesAndFolders2.add(placeHolder);
            initialise();
        }
    }

    return filesAndFolders;
}

private void initialise() {

    filesAndFolders = filesAndFolders2.toArray(new String[filesAndFolders2.size()]);
    filesAndFolders2 = new ArrayList<String>(filesAndFolders.length +1);

}

}

我称之为:     sample.get("sample//samples");

它会在nullPointerException行返回16。 (for循环)

当我输入时:

private static Image n1 = new Image("sample//sample2//sample3.png");

将找到该文件,并且应用程序将正常加载。我怎样才能让这个程序返回一些东西?

Ps:我之前开始工作:但它是在Jar文件之外的文件

编辑:我想将文件列表作为String[]返回。另外,我不希望计算机事先知道那里存在哪些文件。 (EG:如果文件名已更改,计算机仍会找到它)

1 个答案:

答案 0 :(得分:0)

如果我正确地阅读您的问题,您需要一个jar文件中的条目列表,而不事先知道jar文件中的内容。

要获取jar文件中的条目列表,您可以使用java.util.jar.JarFilejava.util.jar.JarEntry类:

String jarFileName = ...
JarFile jar = new JarFile( jarFileName );
Enumeration<JarEntry> entries = jar.entries();
while ( entries.hasMoreElements() )
{
    JarEntry entry = entries.nextElement();
    String entryName = entry.getName();
    // do something with the entryName String
    ...

    // get an InputStream for the entry
    InputStream is = jar.getInputStream( entry );
    ...
}