【问题标题】:How to create a directory inside TOMCAT using Java?如何使用 Java 在 TOMCAT 中创建目录?
【发布时间】:2012-11-05 13:53:41
【问题描述】:

我在尝试在我的 servlet 应用程序中创建一个目录来保存音频文件时遇到了麻烦。当我尝试在根目录中创建它时: (C:/something) 我没有问题,但是当我尝试在 tomcat 路径中创建它时,我不能。有谁知道为什么? 这是我的代码(我必须通过帖子传递目标路径,但我首先尝试使用先前设置的路径)。

public void doPost(HttpServletRequest request, 
                    HttpServletResponse response) throws ServletException, IOException
{
    PrintWriter out = response.getWriter();
    out.println("<HTML><HEAD></HEAD><BODY>");
    //nombreFichero = request.getParameter("nombreArchivo");
    //Ruta = request.getParameter("Destino");
    String destino = request.getParameter("Destino");
    String ruta2 = request.getContextPath();
    ruta2 += "/InformesAudio/";
    out.println("<P>Ruta para guardar: <B>" + destino + "</B></P>");
    out.println("<P>Ruta armada: <B>" + ruta2 + "</B></P>");

    File crearCarpeta = new File(destino);
    if(!crearCarpeta.exists())
    {
        crearCarpeta.mkdir();
        out.println("<P>La ruta de getContextPath modificada es: </P><P>" + destino + "</P>"
                    + "<P>CARPETA CREADA EXITOSAMENTE</P>");
    }

感谢各位朋友的帮助!!祝你今天过得愉快!! ;)

【问题讨论】:

  • @JordiLaforge 创建目录不是例外 :(
  • 我隐约记得tomcat(出于安全考虑)限制了webapp目录中/下的某些文件系统操作......你可以/应该将你的文件存储移出那里,比如C:\ InformesAudio \?
  • @Carol,你检查过tomcat日志有没有错误?
  • @corlettk 我不能,因为我使用的是在线软件,而且我必须能够从互联网上复制它,所以我认为它应该在 Tomcat 服务器内。
  • @corlettk 我已经检查过了,但不是错误。你知道如果创建我的目录我必须使用“/”或“\\”吗?当我得到request.getContextPath() 的上下文时,我在问这个问题,我得到“/HIS”,我想在这个文件夹中创建它,比如:“/HIS/InformesAudio/” 这让我抓狂:(谢谢你的时间;)

标签: java tomcat servlets mkdir create-directory


【解决方案1】:

我明白了:

`

    public static String WEBAPP_ROOT;
    /**
    *       Initialize the servlet and set up some static variables :<br>
    */
    public void init() {
            WEBAPP_ROOT = getServletContext().getRealPath("/");
    }`

那么你

【讨论】:

  • 那你呢?但我很高兴你找到了它......实际上创建目录树没有问题,是吗?所以你很高兴;-)
【解决方案2】:

试试这个.. 获取应用程序根目录,然后连接目标位置。也可以尝试使用 mkdirs() 而不是 mkdir()。如果不存在,它将创建父目录

File parent_dirs = new File(applicationRoot + destinationLoc);
if(!parent_dirs.exists()){
  parent_dirs.mkdirs();
}

【讨论】:

  • 它不起作用:(我已经尝试过这个(使用“\\”和“/”)但我不能。记住我必须在tomcat目录树中创建它,我不知道是否我可以。String dir = request.getContextPath(); File TargetRoot = new File(dir + "\\InformesAudio\\"); if(!TargetRoot.exists()) { TargetRoot.mkdir(); out.println("&lt;P&gt;La ruta de getContextPath modificada es: &lt;/P&gt;&lt;P&gt;" + TargetRoot.getPath() + "&lt;/P&gt;" + "&lt;P&gt;CARPETA CREADA EXITOSAMENTE&lt;/P&gt;" + "&lt;P&gt;El Path Absoluto es: " + TargetRoot.getAbsolutePath() + "&lt;/P&gt;"); }
猜你喜欢
  • 1970-01-01
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
  • 2012-03-25
  • 1970-01-01
  • 2021-07-23
相关资源
最近更新 更多