Here you can find the source of getRelativePath(File path, File base)
public static String getRelativePath(File path, File base)
//package com.java2s; /*//from ww w. j a v a 2 s . co m * RHQ Management Platform * Copyright (C) 2005-2008 Red Hat, Inc. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2, as * published by the Free Software Foundation, and/or the GNU Lesser * General Public License, version 2.1, also as published by the Free * Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License and the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU General Public License * and the GNU Lesser General Public License along with this program; * if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ import java.io.File; public class Main { /** * The base attribute specifies what the directory base the relative path should be considered relative to. The base * must be part of the absolute path specified by the path attribute. */ public static String getRelativePath(File path, File base) { String path_abs = path.getAbsolutePath(); String base_abs = base.getAbsolutePath(); int idx = path_abs.indexOf(base_abs); if (idx == -1) { throw new IllegalArgumentException("Path (" + path_abs + ") " + "does not contain " + "base (" + base_abs + ")"); } String relativePath = "." + path_abs.substring(idx + base_abs.length()); return relativePath; } }