Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package laborka1;
- /**
- *
- * @author student
- */
- import java.io.File;
- import java.io.Serializable;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- public class main {
- /**
- * @param args the command line arguments
- */
- public static void main(String[] args) {
- // TODO code application logic here
- String sciezka = args[0];
- //0. sciezka (plik lub katalog)
- //1. plik
- //drugi jest opcjonalny
- //jezeli cos jest katalgiem to serializujemy do tego
- //katalogu
- File obj = new File(sciezka);
- if(obj.isDirectory())
- {
- if(args.length > 1)
- {
- //serializacja
- }
- //tak czy siak robimy lsa
- }
- else
- {
- //deserializacja
- }
- // jezeli tylko plik to to jest plik z ktorego odczytujemy
- // i deserializujemy
- //najpierw pliki po nazwie
- //potem katalogi
- //wciecie tabulatorami
- //rozmiar plikow i katalogow
- }
- }
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package laborka1;
- /**
- *
- * @author student
- */
- import java.io.File;
- import java.io.Serializable;
- import java.text.DateFormat;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.Iterator;
- import java.util.Objects;
- import java.util.TreeSet;
- public class MyFile implements Comparable<MyFile>, Serializable{
- private enum TYP { plik, folder };
- TYP typ;
- String nazwa;
- long rozmiar;
- File plik;
- Date data;
- TreeSet<MyFile> lista;
- public MyFile(String sciezka)
- {
- //co nie jest katalogiem jest plikiem
- this.plik = new File(sciezka);
- this.nazwa = this.plik.getName();
- if(this.plik.isDirectory())
- {
- this.typ = TYP.folder;
- }
- else
- {
- this.typ = TYP.plik;
- this.rozmiar = this.plik.length();
- }
- this.data= new Date(this.plik.lastModified());
- this.lista = new TreeSet<>();
- }
- private void czytajFolder()
- {
- File pliki[] = this.plik.listFiles();
- //zczytaj pliki do tabelki
- for (File x : pliki)
- {
- this.lista.add(new MyFile(x.getAbsolutePath()));
- }
- this.rozmiar = this.lista.size();
- this.plik = null;
- }
- public void print(int przerwa) // wyswietlenie zawartosci kolekcji
- {
- //przerwa to poziom zaglebienia w drzewie
- Iterator it = lista.iterator();
- while(it.hasNext())
- {
- dodajTaba(przerwa);
- MyFile file = (MyFile)it.next();
- System.out.println(file.toString());
- if(file.typ == TYP.folder)
- file.print(przerwa+1);
- }
- }
- private void dodajTaba(int przerwa)
- {
- for(int i = 0;i < przerwa; i++)
- System.out.print("/t");
- }
- }
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package laborka1;
- /**
- *
- * @author student
- */
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package ls_in_java;
- import java.io.File;
- import java.io.Serializable;
- import java.text.DateFormat;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.HashSet;
- import java.util.Iterator;
- import java.util.Objects;
- import java.util.Set;
- import java.util.TreeSet;
- public class Plikofolder implements Comparable<Plikofolder>, Serializable{
- private enum Pczyf { PLIK, FOLDER };
- private String nazwa;
- private Pczyf plikczyfolder;
- private Date data;
- private transient File plik;
- private long rozmiar;
- private Set<Plikofolder> lista;
- //zawartosc folderu
- public String getNazwa() {
- return nazwa;
- }
- public void setNazwa(String nazwa) {
- this.nazwa = nazwa;
- }
- public long getRozmiar() {
- return rozmiar;
- }
- Plikofolder(String sciezka, boolean sort)
- {
- this.plik=new File(sciezka);
- this.nazwa = this.plik.getName();
- if(this.plik.isDirectory())
- {
- this.plikczyfolder = Pczyf.FOLDER;
- }
- else
- {
- this.plikczyfolder=Pczyf.PLIK;
- this.rozmiar=this.plik.length();
- }
- this.data= new Date(this.plik.lastModified());
- if(sort == true)
- {
- lista=new TreeSet<>();
- }
- else
- {
- lista = new HashSet<>();
- }
- if (this.plikczyfolder.equals(Pczyf.FOLDER))
- {
- //ładuj co w tym folderze siedzi
- czytajFolder(sort);
- }
- }
- private void czytajFolder(boolean sort)
- {
- File pliki[] = this.plik.listFiles();
- //zczytaj pliki do tabelki
- for (File x : pliki)
- {
- this.lista.add(new Plikofolder(x.getAbsolutePath(), sort));
- }
- //po co ten sort tu jest?
- if(this.plik.isDirectory())
- {
- this.rozmiar = this.lista.size();
- }
- this.plik = null;
- }
- @Override
- public int compareTo(Plikofolder x)
- {
- if(this.equals(x))
- return 0;
- if(this.rozmiar == x.rozmiar)
- return this.nazwa.compareTo(x.nazwa);
- else
- return Long.valueOf(this.rozmiar).compareTo(x.rozmiar);
- // takie same rozmiary, cisnij po nazwach.
- }
- @Override
- public boolean equals(Object x)
- {
- //czy to ten sam obiekt? a kto to wie?
- //nie mozna wejsc dwa razy do tej samej rzeki i inne opowiesci filozoficzne..
- if(x == null)
- return false;
- if(this.getClass() != x.getClass())
- return false;
- if(this == x)
- return true;
- // Plikofolder porownywany = (Plikofolder)x;
- // jezeli sa tej samej klasy to rzutujemy na ObiektKP
- //return (nazwa.equals(porownywany.nazwa) && rozmiar == porownywany.rozmiar);
- //porownujemy nazwe i rozmiar
- return false;
- }
- @Override
- // haszowanie, wygenerowane. i nie za bardzo rozumiem
- // po co one tej javie jest ale wierze ze ma to sens
- public int hashCode() {
- int hash = 7;
- hash = 43 * hash + Objects.hashCode(this.nazwa);
- hash = 43 * hash + (int) (this.rozmiar ^ (this.rozmiar >>> 32));
- return hash;
- }
- @Override
- public String toString()
- {
- String wynik = nazwa + " ";
- if (this.plikczyfolder == Pczyf.FOLDER)
- wynik += "Folder";
- else
- wynik += "Plik";
- return (wynik + rozmiar + " " + formatujDate());
- // rozmiar i data ostatniej modyfikacji
- }
- public void print(int przerwa) // wyswietlenie zawartosci kolekcji
- {
- //przerwa to poziom zaglebienia w drzewie
- Iterator it = lista.iterator();
- if(lista.size() > 0)
- {
- dodajSpacje(przerwa);
- System.out.println(">>>");
- }
- while(it.hasNext())
- {
- dodajSpacje(przerwa);
- Plikofolder file = (Plikofolder)it.next();
- System.out.println(file.toString());
- if(file.plikczyfolder == Pczyf.FOLDER)
- file.print(przerwa+3);
- }
- if(lista.size() > 0)
- {
- dodajSpacje(przerwa);
- System.out.println("<<<");
- //koniec folderu
- }
- }
- private void dodajSpacje(int przerwa)
- {
- for(int i = 0;i < przerwa; i++)
- System.out.print(" ");
- }
- private String formatujDate() // przeksztalcenie daty na odpowiedni format
- {
- DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
- return formatter.format(this.data);
- }
- }
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package laborka1;
- /**
- *
- * @author student
- */
- public class sdffdf {
- }
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- /**
- *
- * @author Dominika
- */
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- public class Ls_in_java {
- /**
- * @param args the command line arguments
- */
- public static void main(String[] args) {
- // TODO code application logic here
- boolean sortuj = false;
- boolean czytaj = false;
- boolean zapisz = false;
- String nazwaPliku ="serializable.object";
- //pierwszy argument to sortowanie. 1 dla tak, 0 dla nie.
- //domyslnie 0
- if("1".equals(args[1]))
- {
- sortuj = true;
- }
- if (args.length == 3)
- {
- if (args[2].equals("czytaj")) czytaj = true;
- else if (args[2].equals("zapisz")) zapisz = true;
- }
- //drugi to czytaj albo zapisz
- //formalnie trzeci
- //bo to sciezka jest pierwszym
- if(zapisz == true) // serializacja
- {
- Plikofolder obiekt = new Plikofolder(args[0], sortuj); // czytanie zawartosci katalogu
- obiekt.print(0); // wyswietlenie zawartosci katalogu
- ObjectOutputStream oos = null;
- try
- {
- oos = new ObjectOutputStream(new FileOutputStream(nazwaPliku));
- oos.writeObject(obiekt);
- }
- catch (IOException e)
- {
- System.out.println(e.getMessage());
- }
- finally
- {
- try
- {
- if (oos != null) oos.close();
- }
- catch (IOException e)
- {
- System.out.println(e.getMessage());
- }
- }
- }
- else if(czytaj == true) // deserializacja
- {
- Plikofolder obiekt = null;
- ObjectInputStream ois = null;
- try
- {
- ois = new ObjectInputStream(new FileInputStream(nazwaPliku));
- try {
- obiekt = (Plikofolder)ois.readObject();
- } catch (ClassNotFoundException ex) {
- Logger.getLogger(Ls_in_java.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- catch (IOException e)
- {
- System.out.println(e.getMessage());
- }
- finally
- {
- try
- {
- if (ois != null)
- {
- ois.close();
- obiekt.print(0); // wypisanie wczytanego zdeserializowanego obiektu
- }
- }
- catch (IOException e)
- {
- System.out.println(e.getMessage());
- }
- }
- }
- else
- {
- Plikofolder obiekt = new Plikofolder(args[0], sortuj); // wczytanie zawartosci katalogu
- obiekt.print(0); // wyswietlenie zawartosci
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement