Java 无法从客户端删除服务器中的文件?
我可以获取目录的文件名,但无法删除它们Java 无法从客户端删除服务器中的文件?,java,file,jsp,servlets,Java,File,Jsp,Servlets,我可以获取目录的文件名,但无法删除它们 <%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.util.* ,java.text.* , java.io.*,java.io.File" errorPage="" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://ww
<%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.util.* ,java.text.* , java.io.*,java.io.File" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
String files;
boolean issuccess=true;
//out.println("hi ");
String strDirectoy3=config.getServletContext().getRealPath("/");
//File file = new File("D:\\Test\\hireminibusandcoach.co.uk\\ROOT\\administrator"); FileInputStream in = new FileInputStream("c:/a.txt");
try{
File file = new File(strDirectoy3);
File[] listOfFiles = file.listFiles();
for (int i = 0; i <2; i++)
{
if (listOfFiles[i].isFile())
{
files = listOfFiles[i].getName();
out.println(listOfFiles[i].toString());
issuccess=new File(files).delete();
}
}
out.println(" /n Deletion "+issuccess);
}catch(Exception e){
out.println(e);
}
%>
</body>
</html>
在此处插入标题
首先,JSP并不是一个做这种事情的好地方。第二件事是您正在使用JDK7。最好切换到NIO.2api
,如果旧文件中出现故障,API不会抛出异常。因此,您应该尝试以下方式来喜欢NIO.2api
:
try
{
Path path = file.toPath();
Files.delete(path);
}
catch (NoSuchFileException x)
{
System.err.format("%s: no such" + " file or directory%n", path);
}
catch (DirectoryNotEmptyException x)
{
System.err.format("%s not empty%n", path);
}
catch (IOException x)
{
// File permission problems are caught here.
System.err.println(x);
}
请确保运行web服务器的用户有权删除这些文件。canWrite()方法的父目录返回什么?您可以定义不可?有例外吗?错误Stacktrace?运行web服务器的用户是否有权删除这些文件?canWrite()方法的父目录返回了什么?请共享例外跟踪他们共享控制台和db连接以及程序中的where db连接。顺便说一句:我想这是缺乏权限的问题。是的,它的权限问题已经解决了谢谢你的回复Hey@user3329098,您是如何回答该查询的。@jmail:切换到NIO.2会引发异常,因此您将得到真正的问题描述。