Hantera kataloger och sökvägar

Input/Output och strömmar i Java

Alex Liu

Software Developer Engineer

Nyckelbegrepp

  • Kataloger organiserar filer och data
  • Sökvägar anger platsen för filer och kataloger
  • File-klassen kan representera antingen en fil eller en katalog
    • Vilken resurs som skapas beror på vilken metod som anropas (mkdir() för kataloger och createNewFile() för filer)

Datorskärm med flera katalogsikoner

Input/Output och strömmar i Java

Skapa kataloger

  • Importera klassen File
    import java.io.File;
    
  • Skapar ett File-objekt som representerar katalogen
    File newDirectory = new File("myDirectory");
    
  • Använd .mkdir() för att skapa den faktiska katalogen i filsystemet
    boolean created = newDirectory.mkdir();
    
  • Returnerar true om katalogen skapas utan problem
  • Returnerar false om katalogen redan finns eller inte kan skapas
Input/Output och strömmar i Java

Lista filer i en katalog

  • Använd .listFiles() för att lista filer i en katalog

$$

// Creates a `File` object representing the directory `myDirectory`
File dir = new File("myDirectory");
//Retrieves an `array` of `File` objects representing the contents of `myDirectory`
File[] files = dir.listFiles();
  • Returnerar en array av File-objekt om katalogen finns
  • Returnerar null om katalogen inte finns
Input/Output och strömmar i Java

Hämta en fils relativa sökväg

  • Relativ sökväg: platsen för en fil eller katalog i förhållande till den aktuella arbetskatalogen
// Creates a `File` object for `sample.txt` inside `myDirectory`
File file = new File("myDirectory/sample.txt");
// Retrieves the relative path of the file as a String
String path = file.getPath();
System.out.println(path);
  • Vi antar att myDirectory redan finns – annars misslyckas filskapande eller skrivning

  • Utdata:

    myDirectory/sample.txt
    
Input/Output och strömmar i Java

Arbeta med absoluta sökvägar

  • Absolut sökväg: den fullständiga sökvägen från filsystemets rot

$$

// Creates a `File` object for `sample.txt` inside `myDirectory`
File file = new File("myDirectory/sample.txt");
// Retrieves the absolute path of the file as a String
String absPath = file.getAbsolutePath();
System.out.println(absPath);
  • Utdata:
/user/home/myDirectory/sample.txt
Input/Output och strömmar i Java

Nu kör vi en övning!

Input/Output och strömmar i Java

Preparing Video For Download...