#java #ajax
#java #ajax
Вопрос:
У меня есть веб-приложение, которое я унаследовал. Я новичок в Java, так что не избивайте меня слишком сильно. У меня есть следующий метод добавления новых папок на страницу вложения. Пользователь может создавать новые папки на странице и переименовывать, но как проверить, существует ли уже «Новая папка», и если да, создайте «Новую папку (2)» или «Новую папку (3)» и т.д…
Вот мой метод из моего сервлета вложений:
protected void newFolderAction(HttpServletRequest request, HttpServletResponse response, User user, String folderId) throws UnsupportedEncodingException,
IOException {
String key = request.getParameter("key");
String value = request.getParameter("value");
Attachment parent = AttachmentRepository.read(UUID.fromString(key));
String path = parent.getPath();
logger.debug("newFolder: key=" key " value=" value " path=" path);
if (AttachmentRepository.read(path "New Folder/") == null) {
long size = 0L;
boolean isFolder = true;
boolean isPicture = false;
UUID attachmentId = UUID.randomUUID();
Attachment attachment = new Attachment(attachmentId, UUID.fromString(folderId), user.getUnitId(), UUID.fromString("11111111-1111-1111-1111-111111111111"), path "New Folder/", size, isFolder, isPicture,
"", "0", "0", user.getName(), new Date());
AttachmentRepository.add(attachment);
File directory = new File(Settings.instance().getAttachmentsDir() "/" attachment.getPath());
directory.mkdirs();
}
Attachment rootAttachment = AttachmentRepository.read(folderId "/");
writeJsonAttachmentsTree(response, user, request.getRequestURI(), rootAttachment);
}
Ответ №1:
В Java нет пользовательской встроенной функции, которая создавала бы для вас каталог, если желаемое имя уже существует, вы должны реализовать его самостоятельно.
public static void main(String[] args) {
File folderPath = new File("c:\New Folder");
// Check whatever folderPath exists
System.out.println(folderPath.getPath() " is directory ? " folderPath.isDirectory());
// Create new folder
File folderCreated = createFolder(folderPath);
System.out.println("The new directory path is: " folderCreated.getPath());
// Check whatever folderPath exists
System.out.println(folderCreated.getPath() " is directory ? " folderCreated.isDirectory());
}
public static File createFolder(File path) {
File pathNum = new File(path.getPath());
String num = "";
int i = 1;
do {
pathNum = new File(path.getPath() num);
num = "(" i ")";
} while (!pathNum.mkdir());
return pathNum;
}