JAVA Web项目下获取网站根目录及设定上传目录

    在JAVA Web编程和程中,我经常要用到网站根目录以设置文件的上传目录,下面这个类可以很好的实现相关的功能。这个类用静态成员变量,数据获取方便,省去许多不必要的操作。

import java.io.File;
import java.io.IOException;

public class ConstUtil {
	
	/**
	 * 网站运行的根目录
	 */
	public static String ROOT_PATH = getRootPath();
	
	/**
	 * 系统目录分隔符
	 */
	public static String PATH_DS = getDirectorySeparator();
	
	/**
	 * 网站上传根目录
	 * @return
	 */
	public static String UPLOAD_ROOT = getUploadRoot();

	private static String getRootPath() {
		// TODO Auto-generated method stub
		String root = Thread.currentThread().getContextClassLoader().getResource("").getPath();
		File file =  new File(root).getParentFile();
		return file.getParent();
	}
	
	
	private static String getDirectorySeparator() {
		// TODO Auto-generated method stub
		return File.separator;
	}

	/**
	 * 设置网站上传根目录
	 * @return
	 */
	private static String getUploadRoot() {
		// TODO Auto-generated method stub
		String uploadPath = getRootPath()+PATH_DS+"static"+PATH_DS+"uploads";
		File file = new File(uploadPath);
		//判断文件夹是否存在,如果不存在,创建之
		if ( !file.exists() && !file.isDirectory() ) {
			try {
				if ( file.mkdirs() ) {
					System.out.println("Write OK.");
				}else{
					System.out.println("目录创建失败。");
				}
			} catch(SecurityException e) {
				System.out.println("无法写入目录,相关信息:" + e.getMessage());
			}
		}
		return file.getPath();
	}

}

 

要获取时,只要引入该类,然后用以下方法即可:

//..省略Servlet 相关代码  
//网站根目录  
Stirng rootPath = ConstUtil.ROOT_PATH;  
//web项目上传根目录  
String uploadRoot = ConstUtil.UPLOAD_ROOT  
      
//...  

 

 

你可能感兴趣的:(JAVA)