下面方法是来取的目录下指定文件的绝对路径
filename 文件名
dir   目录当目录下面没有目录的情况下,结果是对的
但有目录的前提下总是返回null怎么修改????public  String getpath(File dir,String filename) {
 String returnvalue = null;
    if ( dir == null||filename==null) {
      throw new IllegalArgumentException("Argument " + dir +
                                         " is not a directory. ");
    }
    File[] entries = dir.listFiles();
    int sz = entries.length;
    
    
    for (int i = 0; i < sz; i++) {
      if (entries[i].isDirectory()) {
       getpath(entries[i],filename);
      }
      else {
       if (entries[i].getAbsolutePath().endsWith(filename)){   
            return  entries[i].getAbsolutePath();
            }
      }
      
    }
                 return null;
  
   
  }

解决方案 »

  1.   

    如下修改
    public  String getpath(File dir,String filename) {
     String returnvalue = null;
        if ( dir == null||filename==null) {
          throw new IllegalArgumentException("Argument " + dir +
                                             " is not a directory. ");
        }
        File[] entries = dir.listFiles();
        int sz = entries.length;
        
        
        for (int i = 0; i < sz; i++) {
          if (entries[i].isDirectory()) {
          returnvalue = getpath(entries[i],filename);
    if (returnvalue!=null)
    return returnvalue;
          }
          else {
           if (entries[i].getAbsolutePath().endsWith(filename)){   
                return  entries[i].getAbsolutePath();
                }
          }
          
        }
                     return null;
      
       
      }
      

  2.   

    呵呵!C:\Documents and Settings就是绝对路径。
      

  3.   

    楼上的是猪啊
    F:\music\MTV\beyond-海阔天空.wmv
      

  4.   

    这是一个删除指定目录下所有文件和文件夹的函数看了估计你那个问题就解决了 public void deleteTempFile(String path) throws Exception{
    File file = new File(path);
    if (file.getAbsoluteFile().exists()){
    File[] files = file.listFiles();
    for (int i=0; i<files.length; i++){
    if (files[i].isDirectory()){
    deleteTempFile(path+File.separatorChar+files[i].getName());
    }
    files[i].delete();
    }
    }
    }
      

  5.   

    import java.io.*;public class TestFile
    {
    public  static String getpath(File dir,String filename) 
    {
      String returnvalue = null;
        if ( dir == null||filename==null) 
        {
          throw new IllegalArgumentException("Argument " + dir +
                                             " is not a directory. ");
        }
        File[] entries = dir.listFiles();
        int sz = entries.length;
        
        for (int i = 0; i < sz; i++) 
        {
          if (entries[i].isDirectory()&&entries[i].listFiles().length!=0) //如果该目录为空则这个循环不会执行,直接跳到“return null”语句
          {
           getpath(entries[i],filename);
          }
          else 
          {
           if (entries[i].getAbsolutePath().endsWith(filename)){  
                return  entries[i].getAbsolutePath();
          }
        }
          
       }
                     return null;
      
       
      }
      public static void main(String [] args)
      {
       File f=new File(".");
       System.out.println(getpath(f,"1"));//1是当前目录下的一个文件夹
    }  
      }
    我试过了,可以这样改