Java Path Relative Get getRelativePath(File file, File root)

Here you can find the source of getRelativePath(File file, File root)

Description

Si root="/export/share-img y file="/export/share-img/2009/03/01/file.txt" esto devuelve la cadena de caracteres "/2009/03/01/file.txt".

License

Apache License

Parameter

Parameter Description
root a parameter
relativePathToCreate a parameter

Return

true si se pudo crear todo el path false si no se pudo crear algunos de los directorios necesarios

Declaration

public static String getRelativePath(File file, File root) 

Method Source Code


//package com.java2s;
//License from project: Apache License 

import java.io.File;

public class Main {
    /**//from  w w  w .j  a va2  s .  c  om
     * Si root="/export/share-img y file="/export/share-img/2009/03/01/file.txt"
     * esto devuelve la cadena de caracteres "/2009/03/01/file.txt".
     * 
     * If both files are the same that return "/"
     * 
     * Si root es nulo o si root no es un directorio padre de file esta funcion devuelve file.getAbsolutePath()
     * @param root
     * @param relativePathToCreate
     * @return true si se pudo crear todo el path false si no se pudo crear
     *         algunos de los directorios necesarios
     *         @deprecated use getRelativePath(File file, File root,String defaultValue);
     */
    public static String getRelativePath(File file, File root) {
        if (root == null) {
            return file.getAbsolutePath();
        }

        if (file == null) {
            return null;
        }

        String rootAbsolutePath = root.getAbsolutePath();
        String fileAbsolutePath = file.getAbsolutePath();

        if (fileAbsolutePath.startsWith(rootAbsolutePath)) {
            String ret = fileAbsolutePath.substring(rootAbsolutePath.length());
            if ("".equals(ret)) {
                return "/";
            } else {
                return ret;
            }
        } else {
            return fileAbsolutePath;
        }
    }

    /**
     * Si root="/export/share-img y file="/export/share-img/2009/03/01/file.txt"
     * esto devuelve la cadena de caracteres "/2009/03/01/file.txt".
     * 
     * If both files are the same that return "/"
     * 
     * Si root es nulo o si root no es un directorio padre de file esta funcion devuelve file.getAbsolutePath()
     * @param root
     * @param relativePathToCreate
     * @return true si se pudo crear todo el path false si no se pudo crear
     *         algunos de los directorios necesarios
     */
    public static String getRelativePath(File file, File root, String defaultValue) {
        if (root == null) {
            return file.getAbsolutePath();
        }

        if (file == null) {
            return defaultValue;
        }

        String rootAbsolutePath = root.getAbsolutePath();
        String fileAbsolutePath = file.getAbsolutePath();

        if (fileAbsolutePath.startsWith(rootAbsolutePath)) {
            String ret = fileAbsolutePath.substring(rootAbsolutePath.length());
            if ("".equals(ret)) {
                return "/";
            } else {
                return ret;
            }
        } else {
            return defaultValue;
        }
    }
}

Related

  1. getRelativePath(File file, File baseDir)
  2. getRelativePath(File file, File basedir)
  3. getRelativePath(File file, File baseDirectory)
  4. getRelativePath(File file, File directory)
  5. getRelativePath(File file, File folder)
  6. getRelativePath(File file, File root)
  7. getRelativePath(File file, File srcDir)
  8. getRelativePath(File file, String xmlDirectoryPath)
  9. getRelativePath(File fileOrFolder, File baseFolder)