哪位大侠帮忙把下面的程序改成在Linux上运行的...先谢过~因为对Linux不熟,改了好久都没搞定... 郁闷死了...代码如下:import java.io.File;public class FilesCount {

private static int n = 0;

public void readFolderByFile(String filePath) 

File file = new File(filePath); 
File[] tempFile = file.listFiles(); 
File[] Files = new File[10000]; 

for(int i = 0;i<tempFile.length;i++) 


if(tempFile[i].isDirectory()){ 

readFolderByFile("/"+tempFile[i]);

}

else
{

Files[n] = tempFile[i];

System.out.println("Files"+"["+n+"]"+" "+Files[n]);
n++;

}




public static void main(String[] args){

FilesCount sf = new FilesCount();
sf.readFolderByFile(args[0]);
System.out.println("The total of Files is"+" "+n);

}

}

解决方案 »

  1.   

    只要改一下 readFolderByFile("//"+tempFile[i]); 就可以了.
      

  2.   

    呵 但切记最好不要 java FilesCount / 啊, 不然 有的等啦
      

  3.   

    吃完饭 又看了一下觉得还是改一下比较好 不然有可能会抛出异常import java.io.File;public class FilesCount {

    private static int n = 0;
    private final int LEN=1000;//这里加个常量
    public void readFolderByFile(String filePath) 


    File file = new File(filePath); 
    File[] tempFile = file.listFiles(); 
    File[] Files = new File[LEN]; 

    for(int i = 0;i<tempFile.length&&n<LEN;i++) //这里改一下


             if(tempFile[i].isDirectory()){  readFolderByFile("//"+tempFile[i]);//Linux下
    //readFolderByFile("/"+tempFile[i]);//Windows下

    }

    else
    {

    Files[n] = tempFile[i];

    System.out.println("Files"+"["+n+"]"+" "+Files[n]);
    n++;

    }




    public static void main(String[] args){

    FilesCount sf = new FilesCount();
    sf.readFolderByFile(args[0]);
    System.out.print("The total of Files is ");
    if(n==sf.LEN) System.out.print("more than ");
    System.out.println(n);

    }

    }
      

  4.   

    谢谢avi11lang(萧十一郎)兄这么热心...刚刚试了几次... 路径不管是设成绝对的还是相对的..如:/home/download/xiaop(绝对路径), ./xiaop(相对路径), 结果都是报相似的错误码...Exception in thread "main" java.lang.NullPointerException
       at java.io.File.File(java.lang.String, java.lang.String) (/usr/lib/libgcj.so.5.0.0)
       at java.io.File.File(java.io.File, java.lang.String) (/usr/lib/libgcj.so.5.0.0)
       at java.io.File.performList(java.io.FilenameFilter, java.io.FileFilter, java.lang.Class) (/usr/lib/libgcj.so.5.0.0)
       at java.io.File.listFiles() (/usr/lib/libgcj.so.5.0.0)
       at FilesCount.readFolderByFile(java.lang.String) (Unknown Source)
       at FilesCount.main(java.lang.String[]) (Unknown Source)真是无语了.....
      

  5.   

    import java.io.File;public class FilesCount {

    private static int n = 0;

    public void readFolderByFile(String filePath) 

    File file = new File(filePath); 
    File[] tempFile = file.listFiles(); 
    File[] Files = new File[tempFile.length]; 

    for(int i = 0;i<tempFile.length;i++) 


    if(tempFile[i].isDirectory()){ 

    readFolderByFile(filePath+"/"+tempFile[i]);

    }

    else
    {

    Files[n] = tempFile[i];

    System.out.println("Files"+"["+n+"]"+" "+Files[n]);
    n++;

    }




    public static void main(String[] args){

    FilesCount sf = new FilesCount();
    sf.readFolderByFile(args[0]);
    System.out.println("The total of Files is"+" "+n);

    }

    }
      

  6.   

    回kingofworl(良辰美景虚度),也不可以,错误类似...
      

  7.   

    哦 你到根目录下试试 或者你在当前的用户名的目录下
    例如我现在用的root用户名 当前目录为 /或/root时
    则我打 java FilesCount / 或java FilesCount /root 或java FilesCount /usr 等都可以
    但当我在 /usr 或 /tmp 下打上面的就不行 就会出现你说的错误 
    这可能是Linux的目录结构本身的原因
      

  8.   

    可以了说....Thanks a lot!!! 结贴~~