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