Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Пути к файлам (относительно приложения)


Автор: Molodec 19.8.2011, 15:37
Добрый день. 
Помогите, пожалуйста, с вопросом. 
Как читать файлы, которые находятся в директории приложения. 
Допустим, я читаю файл, который находится в файловой системе:

Код

    File formatHeaders = new File("D:\\2011\\Программы\\Разработка\\FA.fmt");
    List<String> tableHeaders = FileUtils.readLines(formatHeaders);


А если нужно не абсолютный путь, а относительный. Допустим этот файл лежит в проекте в:
web\WEB-INF\formats\FA.fmt 
Как задать этот путь. 
То же касается и сохранения. 
Как, допустим, вместо:
FileOutputStream fis = new FileOutputStream("d:/" + fname); 
Сохранить файл в папке своего приложения, указав относительный путь?
Заранее спасибо. 

Автор: LSD 19.8.2011, 16:08
Цитата(Molodec @  19.8.2011,  16:37 Найти цитируемый пост)
Допустим этот файл лежит в проекте в:
web\WEB-INF\formats\FA.fmt 
Как задать этот путь. 

Для этого надо или знать, абсолютный путь до папки web или, чтобы родительская папка папки web была текущей папкой.

Автор: mantracoder 19.8.2011, 17:28
Можно получить путь текущего контекста:
http://download.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getContextPath()

И от него уже строить нужный путь.

Автор: Molodec 20.8.2011, 08:36
mantracoder
Так работает:
FileOutputStream fis = new FileOutputStream("D:\\NetBeansProjects\\1"+getServletContext().getContextPath()+"/"+fname);
Если же относительный путь:
FileOutputStream fis = new FileOutputStream(getServletContext().getContextPath()+"/"+fname);
Не работает. Как с этим бороться? 

Автор: dobrolub 20.8.2011, 18:14
Код

String root = getServletContext().getRealPath("/");
File file = new File(root, fname);


или

Код

String root = getServletContext().getRealPath("");
File file = new File(root, fname);

Автор: Molodec 25.8.2011, 16:27
Спасибо.  smile 
+

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)