用File对象的length()取不出来,各位给个建议。

解决方案 »

  1.   

    给分吧,代码如下:
    ---------------------------------------------------------------
    import java.net.*; 
    import java.io.*; 
    import java.util.*; 
     
     
    /**
      * Shows the size of a file system directory/folder.
      */
    public class FolderSize

        public static void main(String args[]) throws Exception 
        { 
           if (args.length < 1) 
           { 
              System.err.println("usage: java FolderSize StartFolderName"); 
              System.exit(1); 
           } 
     
           System.out.println("Size = " + getFolderSize(new File(args[0])));
        } 
        public static long getFolderSize(File folder)
                throws IllegalArgumentException
        {
           // Validate
           if (folder == null || !folder.isDirectory())
               throw new IllegalArgumentException("Invalid folder");       String list[] = folder.list();     
           if (list == null || list.length < 1)
               return 0;
           // Get size
           File object     = null;
           long folderSize = 0;       for (int i=0; i < list.length; i++)
           {
              object = new File(folder, list[i]);
              if (object.isDirectory())
                  folderSize += getFolderSize(object);
              else
              if (object.isFile())
                  folderSize += object.length();
           }
           return folderSize;
        }

      

  2.   

    其实再我看到你的代码之前,我已经写了一个,不过我还要谢谢你,我的代码
    import java.io.*;public class FileExt
    {
    public static long getLength( File tmpfile )
    {
    long totalLength = 0 ;
    if( tmpfile!=null &&  tmpfile.isDirectory() )
    {
    File[] files = tmpfile.listFiles( );
    for( int i=0; (files != null) && (i < files.length); i++ )
    {
    totalLength = totalLength + getLength( files[i] );
    }
    }
    else
    {
    totalLength = totalLength + tmpfile.length();
    }
    return totalLength;
    }

    static void main( String arg[] )
    {
    if( arg.length == 0 )
    {
    System.out.println("please usage: java FileExt path");
    System.exit(1);
    }
    File f = new File( arg[0] );
    if( f.isDirectory() )
    {
    System.out.println( arg[0] +" is directory." );

    }

    System.out.println(arg[0]+ " length is " + getLength( f ) );


    }
    }
      

  3.   

    我想问Tarloy()一下,只能用这种方法吗?(当然我会给你分的,你不用急)。
      

  4.   

    skyyoung(路人甲) 你是什么意思?我不大明白。
      

  5.   

    在Unix/Linux下可以用调用du命令,取结果不就得啦
      

  6.   

    ghw(大浪淘沙) 如果是在windows下呢?当然大家放心,到时候大家都有分的。
      

  7.   

    windows下你还是用自己的代码取大小吧,好像没什么好方法。