在我们的项目中,我们的项目经常要在win或者linux下跑。我们知道win的文件路径是 D:\go\go这种的,linux的文件路径是/root/go/go这种的。所以我们用分隔符的时候,一定要使用File.separator。
做路径拼接的时候,如果我们有一个localPath跟一个别的路径filePath,我们不能简单的拼接起来,一定要将filePath使用filePath.replace("/", File.separator).replace("\", File.separator),将它变为系统相关路径。如下实例程序:
import java.io.File;
public class Example {
public static void main(String[] args) {
//win 实际路径是 D:\go\p,只不过在代码中要用多余的一个斜杠转义
String localPath = "D:\\go\\p";
String filePath = "/root/data1/2001/c.jpg";
System.out.println(localPath + filePath.replace("/", File.separator).replace("\\", File.separator));
}
}