Rekurencyjne listowanie

0

jak w java wypisac wszystkie pliki ktore znajduja sie na dysku np: podajemy katalog a program wypisze wszystkie pliki znajdujace sie w tym katalogu i jego podkatalogach.

0

juz mam :

import java.io.*;

public class ListDir
{
public static void main(String[] args)
{

String dirname = args.length > 0 ? args[0] : ".";

File f = new File(dirname);

if (f.isDirectory())
{
ListDir x = new ListDir(f);
}
else
System.out.println("file is not a directory: " + dirname);
}

public ListDir(File dir)
{

String dirname = dir.getAbsolutePath();

System.out.println("--------------------------");
System.out.println("Directory Name: " + dirname);

String[ ] files = dir.list();

for (int i=0; i < files.length; i++)
{
String filename = dirname + "/" + files[i];

File f = new File(filename);

if (!f.isDirectory())
{
System.out.println("<file> " + files[i]);
}
}

for (int i=0; i < files.length; i++)
{
String filename = dirname + "/" + files[i];

File f = new File(filename);

if (f.isDirectory())
{
System.out.println("<dir> " + files[i]);

ListDir x = new ListDir(f);
}
}
}
}

0
import java.io.*;
import javax.swing.*;

/**
 * DirectoryTree.
 * Rekurencyjny lister katalogów.
 * 2006 by emix.
 * 
 * [email protected]
 */

class DirectoryTree {

    StringBuffer data = new StringBuffer();
    String sciezka;

    public DirectoryTree(String s)
    {
        sciezka = s;
    }

    public String toString()
    {
        rekur("", sciezka);
        return data.toString();
    }

    public void rekur(String charr, String sciez)
    {
        String temp;

        File fp = new File(sciez);
        String[] subf = fp.list();

        for (int i=0; i<subf.length; i++)
        {
            File tmpf = new File(sciez + "\\" + subf[i]);

            if (!tmpf.isDirectory()) continue;

            data.append(charr + "+---" + subf[i] + "\n");

            // jezeli jestesmy w ostatnim
            // subfolderze
            if (i!=subf.length-1)
                temp = "|   ";
            else
                temp = "    ";

            rekur(charr + temp, sciez + "\\" + subf[i]);
        }
    }

    public static void main(String[] args)
    {
        /*
        DirectoryTree p = new DirectoryTree(
            JOptionPane.showInputDialog("Enter dir's name")
        );*/

        DirectoryTree p = new DirectoryTree(".");

        System.out.println(p);
        System.exit(0);
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0