3

我正在尝试在使用 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();
    }

上面的代码失败了,我没有得到任何异常,也没有创建文件夹。我到底想怎么做?如何为 public_html/ 文件夹提供路径?

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

请让我知道如何实现它?任何示例代码?另外,如果可能的话,让我知道 JERSEY 是否确实给了我 API 以使其变得简单?

4

2 回答 2

3

指向公共网络目录使用

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

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

于 2013-09-28T15:40:50.210 回答
0

据我了解,当我以 "xyz.com" 为目标时,它默认指向我的服务器中的 /home/xyz/public_html/ 。

是什么让你这么想的?您正在给定的代码片段中操作文件,因此您的路径意味着仅此/xyz.com/appFolder/而已。您很可能在尝试创建这样的文件夹时遇到权限问题。

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

于 2013-09-22T06:30:20.227 回答