Как составить список содержимого каталога сервера, используя JSP? - PullRequest
11 голосов
/ 04 июня 2009

При записи файла JSP, как я могу получить текущий каталог этого файла во время выполнения
(чтобы иметь возможность перебирать каталог и перечислять его содержимое)?

Могут ли некоторые операции ввода-вывода файлов быть ограничены из-за некоторых проблем безопасности?

Я бы предпочел решение без доступа к какой-то конкретной реализации серверные переменные / свойства.

EDIT:
Я бы не спросил, было ли это так просто, как new File("."), потому что это просто дало бы каталог исполняемых файлов сервера.

Ответы [ 5 ]

6 голосов
/ 18 августа 2012
        <%@page import="java.io.*" %> 
        <%@page import="java.util.*" %> 
        <%!        public void GetDirectory(String a_Path, Vector a_files, Vector a_folders) {
                File l_Directory = new File(a_Path);
                File[] l_files = l_Directory.listFiles();

                for (int c = 0; c < l_files.length; c++) {
                    if (l_files[c].isDirectory()) {
                        a_folders.add(l_files[c].getName());
                    } else {
                        a_files.add(l_files[c].getName());
                    }
                }


            }
        %> 

        <%
            Vector l_Files = new Vector(), l_Folders = new Vector();
            GetDirectory("C:/mydirectory/", l_Files, l_Folders);

            //folders should be left out... 
            //for( int a = 0 ; a<l_Folders.size() ; a++ ) 
            //out.println( "[<b>"+l_Folders.elementAt(a).toString() + "</b>]<br>") ; 

            //generate files as XML 
            out.println("<music>");

            for (int a = 0; a < l_Files.size(); a++) {
                out.println("<file>" + l_Files.elementAt(a).toString() + "</file>");
            }

            out.println("</music>");
        %> 

Замените "C: / mydirectory /" на ваш каталог

5 голосов
/ 04 июня 2009

вы должны знать путь jsp в вашем веб-приложении, чтобы вы могли передать его getRealPath ()

File jsp = request.getRealPath(pathToJspInWebapp);  //eg. /WEB-INF/jsp/my.jsp
File directory = jsp.getParentFile();
File[] list = directory.listFiles();
2 голосов
/ 04 августа 2011

Начиная с версии 2.1 использования Java Servlet API:

File jsp = new File(request.getSession().getServletContext().getRealPath(request.getServletPath()));
File dir = jsp.getParentFile();
File[] list = dir.listFiles();
0 голосов
/ 23 июля 2013

Я использовал этот,

File jspFile = new File(request.getRealPath(request.getServletPath()));
        File dir = jspFile.getParentFile();
        String requestURL = request.getRequestURL().toString();
        String urlDir = requestURL.substring(0, requestURL.lastIndexOf('/'));

        File[] files = dir.listFiles(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                return name.endsWith(".ipa");
            }
        });
0 голосов
/ 06 апреля 2011

Правильный / рабочий пример:

File jsp = new File(request.getRealPath(request.getServletPath()));
File dir = jsp.getParentFile();
File[] list = dir.listFiles();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...