Question: I made program for file managing. When user input is list, delete,move, create_dir, info , rename,copy program must manage files/folders that way. Folders must be

I made program for file managing. When user input is list, delete,move, create_dir, info , rename,copy program must manage files/folders that way. Folders must be deleted recursively. And all possible scenarios should be included. I am stuck with while loop. The rest of program functions normally.For example when I take into acount possibility user input is senseless .And want program to continue running after validation.Program function only for first check.If list is first then for list command.And again and again checks list command even if Boolean condition for other commands is included In while loop. the program should be in java language

package assign4; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.BasicFileAttributes; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.Scanner; public class Assign4 { public static void main(String[] args) throws IOException { Scanner scan = new Scanner(System.in); String komanda = ""; String str[] = {"LIST", "INFO", "CREATE_DIR", "RENAME", "COPY", "MOVE", "DELETE"}; System.out.println("Unesite operaciju koju zelite da izvrsite: "); komanda = scan.next(); if (komanda.equals(str[0])) { System.out.println("uneli ste komandu LIST"); System.out.println("Unesite putanju:"); String putanja = scan.next(); File fajl = new File(putanja); if (fajl.exists() && fajl.isDirectory()) { System.out.println("Trazeni resurs je folder. Sadrzi fajlove: "); String[] strings = fajl.list(); for (int i = 0; i < strings.length; i++) { System.out.println(strings[i]); } } else { String[] strings = fajl.list(); for (int i = 0; i < strings.length; i++) { System.out.println(strings[i]); System.out.println("Resurs je fajl: "); System.out.println(strings[i]); } } } else if (komanda.equals(str[1])) { System.out.println("uneli ste komandu INFO"); System.out.println("Unesite putanju:"); String putanja = scan.next(); File fajl = new File(putanja); if (fajl.exists() && fajl.isFile()) { System.out.println("Trazeni resurs je fajl"); if (putanja.startsWith("C:") || putanja.startsWith("D:")) { File apsolutna = new File(putanja); BasicFileAttributes kreiran = Files.readAttributes(apsolutna.toPath(), BasicFileAttributes.class); Instant instant = Instant.ofEpochMilli(apsolutna.lastModified()); LocalDateTime datum = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); DateTimeFormatter formatiranje = DateTimeFormatter.ofPattern("dd.MMMM yyyy. HH:mm:ss"); System.out.println("kreiran:" + kreiran.creationTime()); System.out.println("apsolutna putanja:" + apsolutna.getAbsolutePath()); System.out.println("naziv fajla:" + apsolutna.getName()); System.out.println("velicina fajla je:" + apsolutna.getTotalSpace()); System.out.println("datum poslednje izmene:" + datum.format(formatiranje)); } else { File relativna = new File(putanja); BasicFileAttributes kreiran = Files.readAttributes(relativna.toPath(), BasicFileAttributes.class); Instant instant = Instant.ofEpochMilli(relativna.lastModified()); LocalDateTime datum = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); DateTimeFormatter formatiranje = DateTimeFormatter.ofPattern("dd.MMMM yyyy. HH:mm:ss"); System.out.println("kreiran:" + kreiran.creationTime()); System.out.println("apsolutna putanja:" + relativna.getAbsolutePath()); System.out.println("naziv fajla:" + relativna.getName()); System.out.println("velicina fajla je:" + relativna.getTotalSpace()); System.out.println("datum poslednje izmene:" + datum.format(formatiranje)); } } if (fajl.exists() && fajl.isDirectory()) { System.out.println("Trazeni resurs je folder"); if (putanja.startsWith("C:") || putanja.startsWith("D:")) { File apsolutna = new File(putanja); Instant instant = Instant.ofEpochMilli(apsolutna.lastModified()); LocalDateTime datum = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); DateTimeFormatter formatiranje = DateTimeFormatter.ofPattern("dd.MMMM yyyy. HH:mm:ss"); BasicFileAttributes kreiran = Files.readAttributes(apsolutna.toPath(), BasicFileAttributes.class); System.out.println("kreiran:" + kreiran.creationTime()); System.out.println("apsolutna putanja:" + apsolutna.getAbsolutePath()); System.out.println("naziv foldera:" + apsolutna.getName()); System.out.println("velicina foldera je:" + apsolutna.getTotalSpace()); System.out.println("datum poslednje izmene:" + datum.format(formatiranje)); } else { File relativna = new File(putanja); Instant instant = Instant.ofEpochMilli(relativna.lastModified()); LocalDateTime datum = LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); DateTimeFormatter formatiranje = DateTimeFormatter.ofPattern("dd.MMMM yyyy. HH:mm:ss"); BasicFileAttributes kreiran = Files.readAttributes(relativna.toPath(), BasicFileAttributes.class); System.out.println("kreiran:" + kreiran.creationTime()); System.out.println("apsolutna putanja:" + relativna.getAbsolutePath()); System.out.println("naziv foldera:" + relativna.getName()); System.out.println("velicina foldera je:" + relativna.getTotalSpace()); System.out.println("datum poslednje izmene:" + datum.format(formatiranje)); } } else { System.out.println("nepostojeci fajl/folder! Pokusajte ponovo sa unosom putanje:"); } } else if (komanda.equals(str[2])) { System.out.println("uneli ste komandu CREATE_DIR"); System.out.println("unesite ime foldera:"); Scanner sc = new Scanner(System.in); String imeFoldera = sc.next(); File makeDirectory = new File(imeFoldera); try { if (!makeDirectory.exists()) { makeDirectory.mkdir(); System.out.println("kreiran je folder sa nazivom " + makeDirectory.getName()); } else { System.out.println("folder sa nazivom " + makeDirectory.getName() + " vec postoji"); } } catch (Exception e) { System.out.println("nije moguce kreirati folder sa nazivom " + makeDirectory.getName()); } } else if (komanda.equals(str[3])) { System.out.println("uneli ste komandu RENAME"); System.out.println("unesite ime fajla/foldera kojemu zelite promeniti naziv:"); Scanner sc = new Scanner(System.in); String stImeFoldera = sc.next(); System.out.println("unesite novi naziv fajla/foldera:"); String nImeFoldera = sc.next(); File stariFajl = new File(stImeFoldera); File noviFajl = new File(nImeFoldera); if (!stariFajl.exists()) { System.out.println("fajl/folder ne postoji!"); return; } if (noviFajl.exists()) { System.out.println("fajl/folder sa zeljenim nazivom vec postoji!"); return; } if (stariFajl.renameTo(noviFajl)) { System.out.println("fajlu/folderu uspesno promenjen naziv!"); } else { System.out.println("promena naziva nije uspela!"); } } else if (komanda.equals(str[4])) { System.out.println("uneli ste komandu COPY"); System.out.println("unesite lokaciju fajla/foldera koji zelite da kopirate:"); Scanner sc = new Scanner(System.in); String izv = sc.next(); System.out.println("unesite lokaciju odredisnog fajla/foldera:"); String odr = sc.next(); Path izvor = Paths.get(izv); Path odrediste = Paths.get(odr); try { if (!Files.exists(izvor)) { System.out.println("fajl/folder ne postoji!"); return; } if (!Files.exists(odrediste.getParent())) { System.out.println("lokacija ne postoji!"); return; } if (Files.exists(odrediste)) { System.out.println("fajl/folder vec postoji na odredistu!"); return; } Files.copy(izvor, odrediste); System.out.println("fajl/folder " + izvor.getFileName() + " je kopiran!"); } catch (IOException ex) { System.out.println(ex); } } else if (komanda.equals(str[5])) { System.out.println("uneli ste komandu MOVE"); String put = ""; String destinacija = ""; try (BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in))) { System.out.println("unesite putanju fajla/foldera: "); put = bufferRead.readLine(); System.out.println("unesite odredisnu lokaciju fajla/foldera: "); destinacija = bufferRead.readLine(); } catch (IOException e) { System.out.println(e); } File afile = new File(put); File bfile = new File(destinacija + "\\" + afile.getName()); try (FileInputStream inStream = new FileInputStream(afile); FileOutputStream outStream = new FileOutputStream(bfile)) { byte[] buffer = new byte[1024]; int length; while ((length = inStream.read(buffer)) > 0) { outStream.write(buffer, 0, length); } System.out.println("fajl/folder je uspesno premesten!"); inStream.close(); outStream.close(); afile.delete(); } catch (IOException exc) { System.out.println(exc); } } if (komanda.equals(str[6])) { System.out.println("uneli ste komandu DELETE"); System.out.println("unesite naziv fajla/foldera koji zelite da obrisete"); Scanner sc = new Scanner(System.in); String brisanje = sc.next(); File fajl = new File(brisanje); if (fajl.exists()) { fajl.delete(); System.out.println("fajl/folder je uspesno obrisan!"); } else { System.out.println("nije moguce obrisati" + fajl.getName() + " jer " + fajl.getName() + " ne postoji!"); } } } }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!