Tested on directory and single file - works as intended, but verification failed.
package com.codegym.task.task31.task3110;
import com.codegym.task.task31.task3110.exception.NoSuchZipFileException;
import static com.codegym.task.task31.task3110.ConsoleHelper.*;
import static com.codegym.task.task31.task3110.Operation.*;
public class Archiver {
public static void main(String[] args) throws Exception {
Operation operation = null;
do {
try {
operation = askOperation();
CommandExecutor.execute(operation);
} catch (NoSuchZipFileException e) {
writeMessage("You didn't select an archive or you selected an invalid file.");
} catch (Exception e) {
writeMessage("An error occurred. Please check the entered data.");
}
} while (operation == null || !operation.equals(EXIT));
}
public static Operation askOperation() throws Exception {
writeMessage("Select an operation:");
for (Operation operation : Operation.values()) {
switch (operation) {
case CREATE:
writeMessage(operation.ordinal() + " - Zip files into an archive");
break;
case ADD:
writeMessage(operation.ordinal() + " - Add a file to an archive");
break;
case REMOVE:
writeMessage(operation.ordinal() + " - Remove a file from an archive");
break;
case EXTRACT:
writeMessage(operation.ordinal() + " - Extract an archive");
break;
case CONTENT:
writeMessage(operation.ordinal() + " - View the contents of an archive");
break;
case EXIT:
writeMessage(operation.ordinal() + " - Exit");
break;
}
}
int option = readInt();
return Operation.values()[option];
}
}