写肯定有人写的出来,但效率不好说!查一下API你也可以写吗!
看如何知道几块盘,再获得路径,和文件名,是文件的比较,否则递归。这种东西没意义了,一般的系统都有!

解决方案 »

  1.   

    File对象里面有个getAbsoluteFile()可以返回一个File对象,它包含当前File对象引用的目录或文件夹的绝对路径。File dataFile = new File("output.txt");//参数是文件名
    dataFile = dataFile.getAbsoluteFile();
    另外,我这还有个自己做的关于搜索文件夹目录级的小例子,不知道是否有用!
    package SearchFile;import java.io.*;public class SearchFile {
      //查找文件及文件夹
      public void SearchFold(String sFolderName) {
        String[] SubDir; //记录临时得到的文件夹数组
        File myDir = new File(sFolderName);
        File myObject;   //文件夹绝对路径    SubDir = myDir.list();
        try {
          for (int i = 0; i < SubDir.length; i++) {
            myObject = new File(sFolderName + "\\" + SubDir[i]);
            if (myObject.isDirectory() == true) {
              System.out.println("得到的文件夹路径: " + sFolderName + "\\" + SubDir[i]);
              SearchFold(sFolderName + "\\" + SubDir[i]);
            }else{
              System.out.println("得到的文件路径: " + sFolderName + "\\" + SubDir[i]);
            }
          }
        } catch (Exception e){
          e.printStackTrace();
        }
      }  public static void main(String[] args) {
        SearchFile test = new SearchFile();
        test.SearchFold("C:/Program Files");
      }
    }
      

  2.   

    /**
         * @param source 开始查找文件的开始目录对应的java.io.File , 如 c:\
         * @param name   需要查找的文件 ,如 winword.exe.
         * @return 成功则返回路径,否则返回null.
         * 
         * 使用方法如下 :
         * <code>
         *  public static void main(String[] args) {
         *      String rootDir = "c:/";
         *      String name = "spuninst.exe";
         *      String result = findFile(new File(rootDir), name);
         *      System.out.println(result);
         *  }
         * </
         */
        public static String findFile(File source, String name) {
            File[] files = source.listFiles();
            if (files == null || files.length == 0) {
                return null;
            }
            for (int i = 0; i < files.length; i++) {
                File file = files[i];
                System.out.println(file.getAbsolutePath());
                if (file.isDirectory()) {
                    String path = findFile(file, name);
                    if (path != null)
                        return path;
                } else {
                    if (file.getName().equalsIgnoreCase(name)) {
                        return file.getAbsolutePath();
                    }
                }
            }
            return null;
        }