用Java程序获取绝对路径

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

前一段做个程序,碰到了这样一个问题,想利用相对路径删掉一个文件(实际存在的),老是删不掉. 真是急人呀,最后让我费了好大力气才算把它解决掉,问题不防跟大家说说,万一碰到这样的问题,就不用再费劲了!

情况是这样的:我的Tomcat装在了c盘,而我的虚拟目录设在了E:/work下, 我在E:/work/test/image下有个图片,test.gif 我想通过程序删掉它,但他的绝对路径不确定(为了考虑到程序以后的移植,绝对路径是不确定的)。

假设del.jsp文件在e:/work/test 下,用下面的程序似乎可以删掉:

<!--原始的del.JSP源文件-->

<%@ page contentType="text/Html; charset=GBK" errorPage="" %>

<%request.setCharacterEncoding("GBK");%>

<%@ page language="Java" import="java.sql.*" import="java.util.*" import ="java.text.*" import="java.io.*"%>

<HTML>

<head>

<meta http-equiv="Content-Type" content="text/HTML; charset=GBK">

<title>删除成功页面</title>

</head>

<body>

File f=new File("/image/",test.gif);

boolean a=f.delete();

out.print("a="+a);

</body>

</HTML>

但事实上不行,你会发现a=false;

这就需要获取其绝对路径, 我们用java程序来做一个专门来获取绝对路径的javaBean(path_test.java)就可以了。

path_test.java的代码如下:

package pathtest;

import java.io.*;

import javax.servlet.*;

import javax.servlet.JSP.PageContext;//导入PageContext类,不要忘了

public class path_test

{

protected ServletContext m_application;

private boolean m_denyPhysicalPath;

public path_test()

{

}

public final void initialize(PageContext pageContext)

throws ServletException

{

m_application = pageContext.getServletContext();

}

public String getPhysicalPath(String filePathName, int option)

throws IOException

{

String path = new String();

String fileName = new String();

String fileSeparator = new String();

boolean isPhysical = false;

fileSeparator=System.getProperty("file.separator");

if(filePathName == null)

throw new IllegalArgumentException("There is no specified destination file (1140).");

if(filePathName.equals(""))

throw new IllegalArgumentException("There is no specified destination file (1140).");

if(filePathName.lastIndexOf("\\") >= 0)

{

path = filePathName.substring(0, filePathName.lastIndexOf("\\"));

fileName = filePathName.substring(filePathName.lastIndexOf("\\") + 1);

}

if(filePathName.lastIndexOf("/") >= 0)

{

path = filePathName.substring(0, filePathName.lastIndexOf("/"));

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航