Удаление файлов в папке по дате Java (JSP)

285
14 сентября 2017, 15:01

Не получается удалить старые файлы в папке через JSP по дате. Имеется класс для удаления файлов (DeleteFile.java) и два JSP. Первый JSP (index.jsp), основная страница, где имеется поле для ввода пути папки и поле для ввода количества дней (сколько дней назад был создан файл). Второй JSP (deletefile.jsp) должен выводить список файлов, которые были удалены.

P.S. И как добавить функцию удаления по определенному типу файла, допустим .txt.

DeleteFile.java

import java.io.File;
public class DeleteFile {
       public static void deleteFiles(String daysBack, String dirWay) {
           File f = new File(dirWay);
           if(f.isDirectory()){
               File[] listFiles = f.listFiles();  
               long timeAgo = System.currentTimeMillis() - (Integer.parseInt(daysBack) * 24 * 60 * 60 * 1000);
               for(File listFile : listFiles) {
                   if(listFile.lastModified() < timeAgo) {
                       if(!listFile.delete()) {
                           System.err.println("Файл удален: " + listFile);
                       }
                   }
               }
           } else {
               System.out.println("Файлы не найдены");
           }
           }
       }

index.jsp

<!DOCTYPE HTML>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page language="java"
       contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<title>mainpage</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<center>Stub</center>
<br>
    <form action="deletefile.jsp" method="POST"  >
     Удалить файлы:  <input type="text" name="text" >
     Создан дней назад:  <input type="number" name="timeago">
                        <input type="submit" name="Submit" value="Submit">
                          </form>
</body>
</html>

deletefile.jsp

<!DOCTYPE HTML><%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page import="ru.sbrf.asfs.stub.stubsUtils.DeleteFile"%>
<%@page import="java.util.List"%>
<%     DeleteFile delfile = new DeleteFile();
String fileName = request.getParameter("text");
String timeAgo = request.getParameter("timeago");
delfile.deleteFiles(timeAgo, fileName);

  %>
<html>
<head>
<title>Deletepage</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
</body>
</html>
Answer 1

попробуйте больше логать, например выдавать все файлы которые проверяются

for(File listFile : listFiles) {
  System.out.println("checking file: " + listFile.getAbsolutePath() + "; lastModified=" + listFile.lastModified());
  // etc

PS: фильтровать файлы можно с помощью FileFilter или FilenameFilter

File[] listFiles = f.listFiles(path -> path.getName().endsWith(".txt")); 
READ ALSO
css анимация прокрука на 180градусов

css анимация прокрука на 180градусов

делаю анимацию прокрутка блока на 180градусов

213
Изменение фона при скролле

Изменение фона при скролле

Хочу реализовать следующее - при достижении определенной секции на сайте, например "<div id="client"></div>", менялся фон на сайтеПока делаю простенький...

390
Цвет заменяющего текста в инпуте

Цвет заменяющего текста в инпуте

У меня стоит белый текст в поиске :

261
На новых Super Retina Display (Iphone X) растровый пиксель (bitmap pixel) так же умножается на 4?

На новых Super Retina Display (Iphone X) растровый пиксель (bitmap pixel) так же умножается на 4?

На новых Super Retina Display (Iphone X) растровый пиксель (bitmap pixel) так же умножается на 4?

215