【问题标题】:Create a directory dynamically inside the "web pages" folder of a java web application在 Java Web 应用程序的“网页”文件夹中动态创建一个目录
【发布时间】:2012-04-05 18:10:31
【问题描述】:

所以我试图在网页文件夹中动态创建一个文件夹。 我正在制作一个游戏数据库。每次添加游戏时,我都会这样做:

public void addGame(Game game) throws DatabaseException {
    em.getTransaction().begin();        
    em.persist(game);   
    em.getTransaction().commit();
    File file = new File("C:\\GameDatabaseTestFolder");
    file.mkdir();      
}

所以这里一切正常。 文件 get 已创建。 但我想创建这样的文件夹:

public void addGame(Game game) throws DatabaseException {
    em.getTransaction().begin();        
    em.persist(game);   
    em.getTransaction().commit();
    File file = new File(game.getId()+"/screenshots");
    file.mkdir();      
}

或者类似的东西。所以它将在我的 jsp 文件所在的位置创建,并且它的 id 会在游戏中消失。 我不明白默认情况下创建文件夹的位置。

提前谢谢你, 大卫

【问题讨论】:

    标签: file jsp servlets directory


    【解决方案1】:

    默认情况下,它相对于“当前工作目录”,即在 Java 运行时环境启动服务器时当前打开的目录。这可能是例如/path/to/tomcat/bin/path/to/eclipse/workspace/project 等,具体取决于服务器的启动方式。

    您现在应该意识到这种情况无法从 Web 应用程序内部控制。

    您也不希望将其存储在扩展的 WAR 文件夹中(您的 JSP 所在的位置),因为任何更改都会在您重新部署 WAR 时丢失(原因很简单,这些文件不包含在原始战争)。

    而是使用绝对路径。例如

    String gameWorkFolder = "/path/to/game/work/folder";
    new File(gameWorkFolder, game.getId()+"/screenshots");
    

    您可以通过将其作为属性文件设置或 VM 参数提供来使其可配置。

    另见:

    【讨论】:

      猜你喜欢
      • 2013-10-22
      • 2016-11-19
      • 2011-02-27
      • 1970-01-01
      • 2014-05-11
      • 2015-03-01
      • 2010-12-18
      • 2013-01-08
      • 1970-01-01
      相关资源
      最近更新 更多