Here you can find the source of getFileFromRelativeResource(final Class> type, final String relativeResourceName)
Parameter | Description |
---|---|
type | the type to refer to the class loader to load the resource from. The resource is relative to this type. |
relativeResourceName | name of the resource (file or directory) in the class path, relative to the passed in <code>type</code>. |
null
if the resource does not exist, is not accessible via the file:/
protocol or due to missing privileges.
public static File getFileFromRelativeResource(final Class<?> type, final String relativeResourceName)
//package com.java2s; /*//from w w w .j av a 2 s .co m * Copyright 2010-2016 smartics, Kronseder & Reiner GmbH * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.io.File; import java.net.URL; public class Main { /** * Returns the specified file from a resource relative to the given type. * * @param type the type to refer to the class loader to load the resource * from. The resource is relative to this type. * @param relativeResourceName name of the resource (file or directory) in the * class path, relative to the passed in <code>type</code>. * @return the file representation of the resource or <code>null</code> if the * resource does not exist, is not accessible via the * <code>file:/</code> protocol or due to missing privileges. */ public static File getFileFromRelativeResource(final Class<?> type, final String relativeResourceName) { final URL url = type.getResource(relativeResourceName); final File file = getFileFrom(url); return file; } private static File getFileFrom(final URL url) { if (url != null) { final String resourceAsString = url.toExternalForm(); if (resourceAsString.startsWith("file:/")) { final int startIndex = isWindows() ? 6 : 5; final String fileName = resourceAsString.substring(startIndex); final File file = new File(fileName); return file; } } return null; } private static boolean isWindows() { return File.separatorChar == '\\'; } }