package com.tutego.insel.solutions.io;

import java.io.*;
import java.util.*;
import java.text.*;

public class FileLister
{
  private ArrayList<String> files = new ArrayList<String>();
  private ArrayList<String> dirs = new ArrayList<String>();

  public static void main( String args[] )
  {
    FileLister fw = new FileLister();
    File file = new File( "c:/" );

    fw.readDir(file);
    fw.showContent();
  }

  private void readDir(File f)
  {
    File all[] = f.listFiles();

    MessageFormat mf = new MessageFormat( "{0}\t\t{1}\t\t{2}" );

    for (int i = 0; i < all.length; i++)
    {
      Date d = new Date( all[i].lastModified() );

      if( all[i].isFile() )
      {
        Object parts[] = { all[i].getName(), d, new Long( all[i].length()) };

        files.add( mf.format(parts) );
      }
      else
        dirs.add( "[" + all[i].getName() + "]" + formatTime( d.getTime() ) );
    }
  }

  private void showContent()
  {
    for (int i = 0; i < dirs.size(); i++)
      System.out.println(dirs.get(i));

    for (int i = 0; i < files.size(); i++)
      System.out.println(files.get(i));
  }


  private String formatTime( long l )
  {
    SimpleDateFormat sdf = new SimpleDateFormat(
      "'\n\t''--->\tGeaendert am' dd.MM.yyyy 'um' HH:mm:ss'Uhr' (z)" );

    return sdf.format( new Date(l) );
  }
}
