Ответ 1
Использовать путь к классам.
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL url = classLoader.getResource("path/to/folder");
File file = new File(url.toURI());
// ...
Как я могу получить относительный путь к папкам в моем проекте с помощью кода?
Я создал новую папку в моем проекте, и мне нужен ее относительный путь, независимо от того, где находится приложение, путь будет правильным.
Я пытаюсь сделать это в своем классе, который расширяет android.app.Activity
.
Возможно, что-то похожее на "получить путь к файлу из актива" .
Использовать путь к классам.
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL url = classLoader.getResource("path/to/folder");
File file = new File(url.toURI());
// ...
Вы ищете корневую папку приложения? Тогда я использовал бы
String path = getClass().getClassLoader().getResource(".").getPath();
на самом деле "узнать, где я".
File relativeFile = new File(getClass().getResource("/icons/forIcon.png").toURI());
myJFrame.setIconImage(tk.getImage(relativeFile.getAbsolutePath()));
С этим я нашел путь к проекту:
new File("").getAbsolutePath();
this return "c:\Projects\SampleProject"
Вы можете проверить этот примерный код, чтобы понять, как вы можете получить доступ к относительному пути, используя пример кода Java
import java.io.File;
public class MainClass {
public static void main(String[] args) {
File relative = new File("html/javafaq/index.html");
System.out.println("relative: ");
System.out.println(relative.getName());
System.out.println(relative.getPath());
}
}
Здесь getPath отобразит относительный путь файла.
В Android метаданные прикладного уровня доступны через ссылку Context
, действие которой является потомком.
Например, вы можете получить исходный каталог с помощью свойства getApplicationInfo().sourceDir
.
Существуют также методы для других папок (каталог ресурсов, каталог данных, каталог базы данных и т.д.).
Обычно мы хотим добавить файлы изображений, txt, doc и т.д. внутри нашего проекта Java и конкретной папки, например /images. Я нашел в поиске, что в JAVA мы можем получить путь от Root к папке, которую мы укажем как
String myStorageFolder= "/images"; // this is folder name in where I want to store files.
String getImageFolderPath= request.getServletContext().getRealPath(myStorageFolder);
Здесь запрос является объектом HttpServletRequest. Он получит весь путь от папки Root to/images. Вы получите вывод, например,
C:\Users\STARK\Workspaces\MyEclipse.metadata.me_tcat7\WebApps\JavaProject\изображений
С System.getProperty("user.dir")
вы получите "База не абсолютных путей" на