在Java中的/public_html/下的web服务器中创建文件夹

在Java中的/public_html/下的web服务器中创建文件夹,java,webserver,jersey,Java,Webserver,Jersey,我试图在使用JERSEY开发的RESTFul web服务中使用Java文件处理API在web服务器中创建一个文件夹。 根据我的理解,当我以“xyz.com”为目标时,它默认指向我服务器中的/home/xyz/public_html/ 因此,当我尝试创建一个文件夹时,如下所示 String appFolderPath = "/xyz.com/appFolder/"; File userNameFolder = new File(appFolderPath + userNam

我试图在使用JERSEY开发的RESTFul web服务中使用Java文件处理API在web服务器中创建一个文件夹。 根据我的理解,当我以“xyz.com”为目标时,它默认指向我服务器中的/home/xyz/public_html/

因此,当我尝试创建一个文件夹时,如下所示

        String appFolderPath = "/xyz.com/appFolder/";
    File userNameFolder = new File(appFolderPath + userName);
    if (!userNameFolder.exists()) {
        folderPath = userNameFolder.mkdir();
    }
上面的代码失败了,我没有得到任何异常,也没有创建文件夹。 我该怎么做呢?如何为公共html/文件夹指定路径

另一点是,这不是因为权限问题吗,实际上我尝试了另一种方法,我在public_html/下手动创建了/appFolder,并授予该文件夹的完全读写权限,但仍然无法使用上述代码在其中创建任何文件夹

请让我知道如何实现它?有样本代码吗? 如果可能的话,让我知道JERSEY是否给了我API来简化它

根据我的理解,当我以“xyz.com”为目标时,它默认指向我服务器中的/home/xyz/public_html/

你怎么会这么想?您正在操作给定代码段中的文件,因此您的路径仅表示
/xyz.com/appFolder/
。很可能你在创建这样的文件夹时遇到了权限问题


至于缺少异常,这是Java文件API的一个设计特性,它不会在某些故障时抛出异常,而是返回错误的错误代码。检查
mkdir()
调用返回的内容,您会在那里发现
false
作为失败的信号。

指向公共web目录使用

ServletContext context = request.getServletContext();
String path = context.getRealPath("/");

并将您的路径附加到
路径
(以上已解决)

至少将文件夹引用为“/xyz.com/appFolder/”是否正确?是的,对于mkdir(),它返回false。可能的原因是什么?这是许可问题吗?如果是这种情况,我必须授予哪个文件夹读写权限?当然,我不能将其用于公共html文件夹。首先尝试使用“mkdirs()”而不是“mkdir()”。如果没有帮助,那么你就面临着一个棘手的问题。要找到要授予权限的文件夹,请执行userNameFolder.getAbsolutePath()。我使用了两种方法,使用mkdirs()和getAbsolutePath(),getAbsolutePath()返回预期的“xyz.com/appFolder”。但仍然是mkdirs()返回false。我甚至没有得到securityException。因为我正在使用jersey并开发web服务,为了获得servlet上下文,我们必须添加一个参数,如下所示