powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вывод списка файлов из заданной директории с ссылкой на файл
7 сообщений из 7, страница 1 из 1
Вывод списка файлов из заданной директории с ссылкой на файл
    #37970609
planetka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите, пожалуйста, решить вопрос. Нужно написать программу (точнее сервлет), который выводит список файлов из заданной директории. И нужно, чтобы были ссылки на эти файлы, чтобы их можно было бы открыть. Добавила папку и файлы в WebContent. Пробовала реализовать задачу с помощью File, но он выводит только имена файлов.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
public class FileListServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
      
    public FileListServlet() {
        super();
  }

	protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
		
	
		String param = getServletContext().getInitParameter("dirToShow");
		
		PrintWriter w = res.getWriter();
	    res.setContentType("text/html");
	    
	    File root = new File(param);
	  	   
	    File[] fileList = root.listFiles();
    
	    w.println("<H2><FONT COLOR=TEAL>" + "Total number of files in the choosen directory - " +
	        fileList.length + "</FONT></H2>");
	    w.println("<H3><FONT COLOR=PURPLE>" +
	        "Directory path - " + param + "</FONT></H3><HR>");
	    w.println("<TABLE BORDER=0 CELLSPACING=5>");
    	    
	   for(int i = 0; i < fileList.length; i++)
	        printName(fileList[i], w);	    
	    		
	    w.println("</TABLE><HR>");
	    
	  }

	 private void printName(File name, PrintWriter output)
	  {
	    String type = name.isDirectory()
	        ? " (Directory)" : " (File)";
	    output.println("<TR><TD>" + type + "</TD><TD><FONT COLOR=BLUE>"
	        + name.getName()  + "</FONT></TD></TR>");
	  }

	  public String getServletInfo()
	  {
	    return "This servlet shows a content of a directory" +
	           "mentioned in dirToShow parameter or property.";
	  }
}
...
Рейтинг: 0 / 0
Вывод списка файлов из заданной директории с ссылкой на файл
    #37970614
J2SE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
planetka,

Код: java
1.
System.out.println("http://url/path_to_file/filename");
...
Рейтинг: 0 / 0
Вывод списка файлов из заданной директории с ссылкой на файл
    #37970628
planetka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
J2SE,

не совсем поняла. Что значит " http://url/path_to_file/filename"? у меня директория задается через параметр, которые указывается в web.xml там может быть несколько файлов, список их имен выводится, а как ссылку на них сделать - не знаю
...
Рейтинг: 0 / 0
Вывод списка файлов из заданной директории с ссылкой на файл
    #37970630
J2SE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
planetkaДобавила папку и файлы в WebContent.

статический путь до этой директории, дальше просто подставьте имена файлов.
...
Рейтинг: 0 / 0
Вывод списка файлов из заданной директории с ссылкой на файл
    #37970815
planetka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
J2SE,

а через defaultServlet задачу решить эту можно? может кто-нибудь пробовал
...
Рейтинг: 0 / 0
Вывод списка файлов из заданной директории с ссылкой на файл
    #37971239
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
planetkaНужно написать программу (точнее сервлет), который выводит список файлов из заданной директории. И нужно, чтобы были ссылки на эти файлы, чтобы их можно было бы открыть.Вот задлянафига вам "программа, точнее сервлет", если достаточно п(р)очитать web.xml (Tomcat):
Код: xml
1.
2.
3.
4.
5.
  <!--   listings            Should directory listings be produced if there -->
  <!--                       is no welcome file in this directory?  [false] -->
  <!--                       WARNING: Listings for directories with many    -->
  <!--                       entries can be slow and may consume            -->
  <!--                       significant proportions of server resources.   -->

?
...
Рейтинг: 0 / 0
Вывод списка файлов из заданной директории с ссылкой на файл
    #37972338
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
planetka,
пара примеров

[SRC скачать]
if( filePath != null) {
DataInputStream in = null;
OutputStream out = null;
try {
in = new DataInputStream(new FileInputStream(f));
if( in != null ) {

out = new BufferedOutputStream( response.getOutputStream() );

String contentType = "text/html";
response.setContentType(contentType);
response.setHeader("Content-Disposition","attachment; fileName=\"" + fileName + "\"");


// Stream to the requester.
//
byte[] bbuf = new byte[4096];


while ((in != null) && ((length = in.read(bbuf)) != -1))
{
out.write(bbuf,0,length);
}

in.close();
out.flush();
out.close();
return;
}
} finally {
if( in != null ) try { in.close(); } catch( Exception e ) {System.out.println(e.getMessage());}
if( out != null ) try { out.close(); } catch( Exception e ) {System.out.println(e.getMessage());}
}

[/SRC]

[SRC открыть]
if( fileName != null) {
//Open the file for reading
String thisLine;

try {
sun.nio.cs.ext.IBM1025 d = new sun.nio.cs.ext.IBM1025();
d.canEncode();

BufferedReader br = new BufferedReader(new FileReader(logDir + "/" + fileName));
response.setContentType("text/html");
response.setCharacterEncoding("ibm-1025");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>");
out.println("[" + logDir + "/" + fileName + "]");
out.println("</title>");
out.println("</head>");
out.println("<body>");
out.println("Log folder: [" + logDir + "/" + fileName + "]");
out.println("</strong>");
out.println("<br />");
out.println("<h2>");
out.println("Log file: [" + fileName + "]");
out.println("</h2>");
while ((thisLine = br.readLine()) != null) { // while loop begins here
thisLine = new String(thisLine.getBytes("IBM-1025"),"ibm-1025");
thisLine = thisLine.replaceAll(">",">");
thisLine = thisLine.replaceAll("<","<");
out.println(thisLine + "<br>");
} // end while
out.println("</body>");
out.println("</html>");

} // end try
[/SRC]
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вывод списка файлов из заданной директории с ссылкой на файл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]