我给你改一下,没有错误了,原因好好看看书上有关静态方法和内部类的内容:
import java.io.*;
import java.text.DateFormat;
import javax.swing.JOptionPane;
import java.util.*;
import java.text.*;public class SortedList
{
private DateFormat dateFormatter
         =DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT);
private static int totalsize=0;
public void countSize(String filename)
{

File f=new File(filename);

if(!f.isDirectory())
{
totalsize+=f.length();
System.out.println(" "+f.length());
}
else
{
String[] files;
    files=f.list();

    for(int i=0;i<files.length;i++)
    {
     files[i]=filename+"\\"+files[i];
        System.out.println(files[i]);
          countSize(files[i]);
    }
}
}

private static class SorredBySize implements Comparator
{
public int compare(Object a,Object b)
    {
   SortedList s1=new SortedList();
   s1.countSize((String)a);
        int size1=totalsize;
        totalsize=0;
    s1.countSize((String)b);
    int size2=totalsize;
    totalsize=0;
    return (size1<size2?1:(size1==size2?0:-1));
}
}



public static void main(String[] args)
{

SortedList sortedList=new SortedList();
String filename=JOptionPane.showInputDialog(sortedList,"input the filename");
File file=new File(filename);
String[] list=file.list();

ArrayList alist=new ArrayList();
for(int i=0;i<list.length;i++)
{
alist.add(list[i]);
}
if(args.length!=1) Collections.sort(alist);
else
{
if(args[0].equals("-s")) Collections.sort(alist,new SortedList.SorredBySize());
}
for(int i=0;i<alist.size();i++)
{
System.out.println(alist.get(i));
}
}
}