From Small Frog, 2 Months ago, written in Java.
Embed
  1. package com.company;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.util.Arrays;
  6. import java.util.Comparator;
  7.  
  8. public class Main {
  9.  
  10.  
  11.     public static void main(String[] args) throws IOException{
  12.  
  13.         //Bruker getOS (se lengre ned) for å gjøre prosessen enklere ved å gi klargjorte paths for både
  14.         //mac og windows-pc.
  15.         File f = new File(getOS());
  16.  
  17.        System.out.println("This program displays the sub-directories under " + getOS() + " and" +
  18.                " their content. Each sub-directory is sorted in descending order" +
  19.                " based on size. \nThe program will only show the 8 biggest files in each directory.  \n");
  20.  
  21.         File[] files = f.listFiles();
  22.  
  23.         for (File file : files) {
  24.             int counter = 0;
  25.  
  26.             if (file.isDirectory()) {
  27.                 System.out.print("Parent directory: ");
  28.                 System.out.print(file.getCanonicalPath() + " \nNumber of files in directory: " +
  29.                          file.list().length +"\nThe biggest files are..." +"\n" + "\n" );
  30.  
  31.                 File[] filesInDirect = file.listFiles();
  32.                 File[] sortedFile = getSortedArray(filesInDirect, Comparator.comparing(File::length).reversed());
  33.  
  34.                 for(File g : sortedFile){
  35.                     counter++;
  36.  
  37.                     System.out.println("Name: " + g.getName());
  38.                     System.out.println("Length: " +g.length());
  39.                     System.out.println("Type: " + getFileType(g));
  40.                     System.out.println(" ");
  41.  
  42.                     if(counter == 8){
  43.                         break;
  44.                     }
  45.                 }
  46.             }
  47.         }
  48.     }
  49.     //Lagde en getOS funksjon så man ikke trenger å putte inn en manuell path til file.
  50.     public static String getOS(){
  51.         String s = "";
  52.  
  53.         if(System.getProperty("os.name").contains("Windows")) {
  54.              s  = ("C:\\Program Files (x86)");
  55.  
  56.         }
  57.         else if(System.getProperty("os.name").contains("Mac")){
  58.             s  = ("/Users/");
  59.         }
  60.         return s;
  61.     }
  62.     //Bruker Comparator til å få sortert filene.
  63.    public static File[] getSortedArray(File[] fileArray,
  64.    Comparator<File> comparator){
  65.         File[] sorted = fileArray.clone();
  66.         Arrays.sort(sorted, comparator);
  67.         return sorted;
  68.    }
  69.  
  70.    //Enkel metode for å sjekke om det er Directory eller enkel fil.
  71.    public static String getFileType(File file){
  72.  
  73.        String s;
  74.  
  75.        if(file.isDirectory()){
  76.            s = "Directory";
  77.        }else if(file.isFile()){
  78.            s = "File";
  79.        }else{
  80.            s = "Unknown";
  81.        }
  82.        return s;
  83.    }
  84.  
  85.  
  86.  
  87.  
  88.  
  89. }