В Eclipse я создаю Top Down Shooter (TDS) для школьного проекта.Пока что проект идет очень хорошо, но я столкнулся с проблемой.Всякий раз, когда я создавал новую папку в исходной папке моих ресурсов, она отображала пакет.Это не проблема, так как я подумал, что могу просто проигнорировать это, и все заработало, однако, когда я открыл Eclipse, чтобы снова начать работу над проектом, все пакеты превратились в папки.Сначала я не верил, что это будет проблемой, пока ни один из загружаемых мной изображений не будет работать.Код, который я использую, не изменился вообще.У меня вопрос, как я могу изменить папки обратно в пакеты, или как я обновляю свой код для загрузки в Изображения из папок вместо этого?
Я использую эти два метода для загрузки Изображения
/**
* Loads an <code>Image</code> based on a specified relative path.
* @param path the path of the <code>Image</code> to be loaded.
* @return loaded image
*/
public static Image loadRelativePath(String path) {
Image image = null;
try {
image = ImageIO.read(Utility.class.getResourceAsStream(path));
} catch (IOException e) {
e.printStackTrace();
}
return image;
}
/**
* Loads an <code>Image</code> based on a specified absolute path.
* @param path the path of the <code>Image</code> to be loaded.
* @return loaded image
*/
public static Image loadAbsolutePath(String path) {
return Utility.loadRelativePath(path.substring(path.indexOf("/Images"), path.length()));
}
Не знаю, поможет ли это кому-нибудь решить проблему, но я также использую эти два метода для загрузки изображений.
public static HashMap<String, Image> loadHash(String path) {
HashMap<String, Image> map = new HashMap<String, Image>();
List<File> files = listAllFiles(Utility.class.getResource("/Images").getPath());
for(File allFiles : files) {
if(Utility.getFileExtesnion(allFiles).equals(".png")) {
map.put(allFiles.getPath().substring(allFiles.getPath().indexOf("/Image")), Utility.loadAbsolutePath(allFiles.getPath()));
}
}
return map;
}
public static List<File> listAllFiles(String directoryName) {
File directory = new File(directoryName);
List<File> resultList = new ArrayList<File>();
// get all the files from a directory
File[] fList = directory.listFiles();
resultList.addAll(Arrays.asList(fList));
for (File file : fList) {
if (file.isDirectory()) {
resultList.addAll(listAllFiles(file.getAbsolutePath()));
}
}
return resultList;
}