[Java] Dir listings methode aanroepen

Pagina: 1
Acties:

  • Sebastiaan|IA2
  • Registratie: Februari 2001
  • Laatst online: 07-09-2025
Hallo allemaal,

ik wil een programma maken dat alle bestanden van de harde schijf weergeeft. Dit ga ik doen in Java. Het programma dient als basis van een installatieprogramma en moet uiteindelijk gaan kijken welke softwarepakketten er al geinstalleerd zijn.

Nu zit ik met het volgende probleem, ik wil vanuit de main functie een functie myDir aanroepen die vervolgend kijkt of er sprake is van een directory, een file of iets anders (bv hidden oid). als er sprake is van een directory moet er in die dir gekeken worden of er weer directorys zijn enz.. is er een file, dan moet deze geprint worden.
Er wordt echter maar 1 waarde geprint, en dat is de eerste directory. Hoe zorg ik ervoor dat nadat deze directory geprint is, de methode main weer naar de methode myDir gaat en de waarde van de for loop aldaar met eentje ophoogt.

Ik hoop dat het zo een beetje duidelijk is..

AMD XP2000+, 756MB, GF4 4600, 120GB, 17" TFT + klassieke 8 speed brander. Tevens eigenaar van een IRiver 'The craft' 256 MB mp3 speler :)


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

met recursie,
dus in myDir doe je iets van.
if (file.isDir)
{
myDir(file); // je roept myDir nog een keer aan maar dan met de andere directory als basis
}

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

heb tijd over ff een voorbeeldje gebouwd:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package directorylisting;
import java.io.*;

public class Dir
{

  public Dir()
  {
    printDir(new File("c:\\"), 0);
  }
  public void printDir(File myFile, int tabs)
  {
    if (!myFile.isDirectory())
    {
    System.out.println("Opgegeven Dir is geen Directory");
    }
    else
    {
    String strTabs = "";
    for (int i = 0; i < tabs; i++)
      strTabs += "\t";
    System.out.println(strTabs + myFile.getName().toUpperCase());

    File[] files = myFile.listFiles();
    for (int i =0; i < files.length; i++)
    {
      if (files[i].isDirectory())
        printDir(files[i], ++tabs);
      else
        System.out.println(strTabs +files[i].getName());
    }
    }
  }

  public static void  main(String[] args)
  {
    new Dir();
  }
}

  • Sebastiaan|IA2
  • Registratie: Februari 2001
  • Laatst online: 07-09-2025
Wasigh, hartstikke bedankt voor deze voorbeeld codes. Nu ff kijken of ik weer verder kan. Lukt het niet, dan post ik de probelemen wel. :o :9

AMD XP2000+, 756MB, GF4 4600, 120GB, 17" TFT + klassieke 8 speed brander. Tevens eigenaar van een IRiver 'The craft' 256 MB mp3 speler :)