所以这是我的问题: 我这里有一个程序,可以获取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:如果文件名已更改,计算机仍会找到它)
答案 0 :(得分:0)
如果我正确地阅读您的问题,您需要一个jar文件中的条目列表,而不事先知道jar文件中的内容。
要获取jar文件中的条目列表,您可以使用java.util.jar.JarFile
和java.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 );
...
}