Вроде на практике все работает. Единственно логику папки /new по удалению не прописал - если папка уже существует.
Подскажите в каком направлении, я должен сейчас работать? Что поменять?
package com.javarush.task.task31.task3105;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
/*
Добавление файла в архив
*/
public class Solution {
public static void main(String[] args) throws IOException {
String fileName = args[0]; // файл который нужно сохранить в zip архив
String zipFile = args[1]; // zip-архив куда мы будем сохранять
ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(zipFile));
while (zipInputStream.getNextEntry()!=null){
if(zipInputStream.getNextEntry().toString().equals(Paths.get(args[1]).getParent()+ "/new/result.mp3")){
String[] list = (Paths.get(args[1]).getParent()+ "/new/result.mp3").split("/");
for(String checkList : list){
if(checkList.startsWith("result.mp3")) Files.delete(Paths.get(Paths.get(args[1]).getParent()
+ "/new/result.mp3"));
}
}
}
ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(zipFile));
ZipEntry zipEntry = new ZipEntry("new/result.mp3");
zipOutputStream.putNextEntry(zipEntry);
File file = new File(fileName);
Files.copy(file.toPath(),zipOutputStream);
zipInputStream.close();
zipOutputStream.close();
}
}