Я пишу программу, которая требуется для сохранения проекта в выбранном каталоге. Каждый каталог проекта должен содержать HTML-файл, который может иметь разные элементы в зависимости от состояния проекта, а также стандартную библиотеку файлов JavaScript в подкаталоге.Как создать структуру каталогов, которая включает копии определенных файлов?
Я не знаком со средствами, с помощью которых это обычно можно выполнить на Java (или даже как это можно было бы сделать в теории). Есть ли какой-то конкретный инструмент, техника или библиотека, подходящие для этой задачи? Обратите внимание, что я использую Eclipse в качестве моей IDE. Я думал о создании файлов, требуемых с использованием каких-то шаблонов, и/или извлечения их из пакета, но я очень новичок в этой проблеме и не знаю, как исходить из этого.
EDIT: Разрабатывая дальнейшие
Мой проект является небольшая утилита для моего личного использования, так ремонтопригодности не будет большой проблемой. Я использую Java 8. В рамках каждого проекта, созданного пользователем, в библиотеке будет только три неизменных .js-файла и небольшой html-файл, который будет запущен в браузере для запуска скриптов вместе с созданным пользователем .js-файлом. Очень простой материал.
EDIT: Проблема решена ... Я думаю
Я пришел с моим собственным частичным решением, и я думаю, что я могу понять остальное отсюда, но после DB был еще информативным и полезно, поэтому я принимаю это как ответ.
Я понимаю, что мой первоначальный вопрос был недостаточно конкретным. Я надеялся скрыть свои статические ресурсы сценария и шаблон для HTML-файла, чтобы они не могли быть напрямую доступны из файловой системы. Я рассматривал возможность размещения их в каком-то файле пакета, который будет находиться в том же каталоге, что и приложение. Однако мне показалось, что я могу просто разместить их в папке с ресурсами в самой банке.
Создание каталога библиотек в пределах заданной пользователем директории проекта:
libraryDir = projectDir.resolve("libraries");
new File(libraryDir.toUri()).mkdirs(); // Create libraries directory
// Unpack library resources to project
unpackLibrary("file1.js");
unpackLibrary("file2.js");
unpackLibrary("file3.js");
unpackLibrary функция:
private void unpackLibrary(String scriptName) {
String resourcePath = "/libraries/" + scriptName;
Path fileName = Paths.get(resourcePath).getFileName();
try (InputStream in = getClass().getResourceAsStream(resourcePath);) {
Files.copy(in, libraryDir.resolve(fileName));
}
catch (FileAlreadyExistsException e) {
System.out.println("File unpack failed: File already exists (" + e.getFile() + ")");
}
catch (IOException e) {
e.printStackTrace();
}
}
Приложение будет работать с проектом во временном каталоге до тех пор, пока пользователь не решит сохранить это, и в этом случае я буду использовать предложения БД для копирования файлов проекта в новый каталог.
Спасибо, это хорошо, чтобы знать, что я по крайней мере WASN» t заголовок слишком далеко вниз по неправильной дорожке. Поддержание работоспособности не будет большой проблемой, так как мой проект является лишь небольшим личным, создавая полезность для моего удобства. Я просто надеюсь немного научиться на этом пути и попытаюсь следовать хорошей практике. Я уточню свой вопрос, чтобы лучше отразить мои требования к проекту. – pigasus
Рад, что я мог бы помочь! Я должен не просто согласиться с тем, что ремонтопригодность не является большой проблемой, потому что вы никогда не знаете, когда будете думать о новой новой функции, которую вы хотите добавить, или найти ошибку, которую вам нужно исправить. Как сказал мой профессор в колледже, хорошие программы никогда не заканчиваются. Если вы хорошо напишете свой код и напишите хорошие комментарии, вы сможете легко вернуться назад и обновить, добавить или исправить ситуацию. Я обновляю сообщение, чтобы предоставить примерное решение на основе вашего обновления. –