-
Notifications
You must be signed in to change notification settings - Fork 85
/
PathUtil.java
107 lines (94 loc) · 3.6 KB
/
PathUtil.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package com.fh.util;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
/**
* DateTime: 2016/9/17 15:34
* 功能:路径工具类:截取特定路径、获取ClassPath、获取URl地址
* 思路:
*/
public class PathUtil {
//测试
public static void main(String[] args) {
System.out.println("splitString:"+splitString("E:java/IDEA/bin/Helloworld.java","bin/")+"\n");
//System.out.println("getPicturePath:"+getPicturePath("save","topic"));
System.out.println("getClasspath:"+getClasspath());
System.out.println("getClassResources:"+getClassResources());
System.out.println("pathAddress:"+pathAddress());
}
/**
* 截取特定路径
* eg:splitString("E:java/IDEA/bin/Helloworld.java","bin/") 输出:E:java/IDEA/
* @param str 全路径
* @param param 分隔符
* @return
*/
private static String splitString(String str,String param){
String result=str;
if(str.contains(param)){
int start=str.indexOf(param);
result=str.substring(0,start);
}
return result;
}
/**
* 图片访问路径
* @param pathType 图片类型:visit-访问;save-保存
* @param pathCategory 图片类别:话题图片-topic、话题回复图片-reply
* @return
*/
public static String getPicturePath(String pathType,String pathCategory){
String strResult="";
HttpServletRequest request=((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
StringBuffer strBuf=new StringBuffer();
if("visit".equals(pathType)){
}else if("save".equals(pathType)){
String projectPath=PublicUtil.getProjectPath().replaceAll("\\\\","/");
projectPath=splitString(projectPath,"bin/");
strBuf.append(projectPath);
strBuf.append("webapps/ROOT/");
}
strResult=strBuf.toString();
return strResult;
}
/**
* 获取Classpath
* eg:getClasspath:E:/JAVA/IDEA/JavaProject/FH/out/production/FH/../../
* @return
*/
public static String getClasspath(){
String path=(String.valueOf(Thread.currentThread().getContextClassLoader().getResource(""))+"../../").replaceAll("file:/","").replaceAll("%20"," ").trim();
if(1!=path.indexOf(":")){
path= File.separator+path;
}
return path;
}
/**
* 获取Classpath
* eg:getClassResources:E:/JAVA/IDEA/JavaProject/FH/out/production/FH/
* @return
*/
public static String getClassResources(){
String path = (String.valueOf(Thread.currentThread().getContextClassLoader().getResource(""))).replaceAll("file:/", "").replaceAll("%20", " ").trim();
if(path.indexOf(":") != 1){
path = File.separator + path;
}
return path;
}
/**
* 获取地址
* @return
*/
public static String pathAddress(){
String strResult="";
HttpServletRequest request=((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
StringBuffer strBuf=new StringBuffer();
strBuf.append(request.getScheme()+"://"); //协议
strBuf.append(request.getServletPath()+":");//服务器地址
strBuf.append(request.getServerPort()+""); //端口号
strBuf.append(request.getContextPath()+"/"); //上下文路径
strResult=strBuf.toString();
return strResult;
}
}