无法用JSP删除FILE

时间:2014-09-12 16:50:26

标签: java file jsp

我有一个带有此代码的JSP

 File folder = new File("C:/Servidorweb/apache-tomcat-6.0.37/webapps/facturacion_sms/archivos");
        File[] listOfFiles = folder.listFiles();

        //Inicializa array contenedor de nombres de archivos 
        String[] array = new String[listOfFiles.length];




        for (int i = 0; i < listOfFiles.length; i++)  //Recorrido a lista de archivos , se almacenan en array
        {
            if (listOfFiles[i].isFile()) 
            {
                array[i] = listOfFiles[i].getName();
                //out.println(array[i]);
            }
        }

        for(int j = 0; j < array.length ;j++)
        {
             String archivostr =  "C:/Servidorweb/apache-tomcat-6.0.37/webapps/facturacion_sms/archivos/" + array[j];

             out.println(archivostr);

                File archivo = new File(archivostr);

                try
                {
                archivo.delete();
                }
                 catch (Exception e)
              {
                out.println("An exception occurred: " + e.getMessage());
              }


        }

在我的本地Web服务器上一切正常但是当我在Red Hat中运行JSP时archivo.delete();无效。我有所有.jar和路径都很好(当我将其上传到另一台服务器时我更改了路径,我知道路径中没有错误,因为我在循环中打印了它。)

此外,它不会抛出任何异常。

Web服务器是TOMCAT6和OS RedHat 本地Web服务器TOMCAT6和Windows

任何想法?

3 个答案:

答案 0 :(得分:2)

Everything works fine in my local web server but when I run the JSP in Red Hat the archivo.delete(); doesn't work.

这是因为当您切换到不同的操作系统时文件系统会发生变化,并且访问该文件的方式也会发生变化,如果您对此路径进行硬编码,则无法访问不同操作系统上的文件

答案 1 :(得分:0)

我认为你确实遇到了分隔符问题。

String archivostr =  "C:/Servidorweb/apache-tomcat-6.0.37/webapps/facturacion_sms/archivos/" + array[j];

在上面的代码中,只需尝试使用

String archivostr =  "C:"+File.separator+"Servidorweb"+File.separator+"apache-tomcat-6.0.37"+File.separator+"webapps"+File.separator+"facturacion_sms"+File.separator+"archivos"+File.separator+array[j];

答案 2 :(得分:0)

使用File.separator而不是斜杠。