File file=new File("D:\\2009");
   if(!file.exists()){
    file.mkdir();
 }
我懂在绝对路径下建文件夹,但是要实现的是在自己项目相对路径下创建目录,不会写弄了好久哦,大家看一下我的需求吧还有个问题哦, struts1有个上传文件的jar包,如果我不用那个,而是自己用io流写会怎么样,有什么差别啊需求:我要在ssh项目的webroot下面的images下面创建文件夹,是根据当前年月创建(也就是年的文件夹下有月的文件夹),创建的时候判断是否存在,如果存在直接传图片进去,文件夹不存在就创建并存图片,

解决方案 »

  1.   

    File file=new File("2009");
        if(!file.exists()){
        file.mkdir();
    }不就好了吗。
      

  2.   

    1. 获得应用绝对路径 + webroot 操作同
    2. 自己用io流当然可以, 不过可能存在性能或其他问题
      

  3.   

    request.getSession().getServletContext()用这个试试吧,如果是webroot下的某个包的路径就是
    request.getSession().getServletContext().getRealPath("包名")
      

  4.   

    request.getSession().getServletContext().getRealPath("/images");
    如果为空,就创建images文件夹。不用struts的上传组件,直接用IO流写也可以,但会很麻烦。
    需要注意的是如果程序部署在你本机后访问可能是没问题的;但如果程序部署在其他机子上,而从你的机子上访问就不一定了,要用获取的IO流来处理,不能直接用这个file实例:File file = new File("上传文件的路径");好好调试吧。
      

  5.   

    获取类路径
    this.getClass().getClassLoader().getResource("").getPath()直接使用相对路径创建
    File f = new File("hello");
    if(!f.exists()) f.mkdir();
    会创建到类路径上, 桌面程序和你的bin, src是同级的, web应用应该是和web-inf/classes同级..web的没测过.web程序通过上下文获取web程序根路径从而得到绝对路径
    这里给个struts2的例子, 其他的你查查, 肯定都有获取web路径的接口.
    ServletActionContext.getServletContext().getRealPath(UPLOAD_PATH), 如果使用UPLOAD_PATH那么这个UPLOAD_PATH必须存在, 一般你用"/"就可以了.