路径问题。。。

来源:1-4 Thumbnailator图片处理和封装Util(下)

慕标0359786

2020-09-08 21:35:31

makeDirath(targetAddr);
String relativeAddr=targetAddr+realFileName+extension;
File desk=new File(PathUtil.getImgBasePath()+relativeAddr);
  1. makeDirath(targetAddr);这个是检查绝对路径是否存在,那这个绝对路径哪里来的?是文件传进来的时候获得的吗?

  2. 为什么相对路径是targetAddr+realFileName+extension;相对路径和绝对路径的关系就是一个文件的文件名加上他的绝对路径就是相对路径?

  3. File desk=new File(PathUtil.getImgBasePath()+relativeAddr);
    这里传入的是绝对路径,为什么不用targetAddr传进去,targetAddr不就是绝对路径了吗,为什么PathUtil.getImgBasePath()+relativeAddr也是绝对路径?麻烦老师帮我解答一下。

写回答

1回答

好帮手慕阿满

2020-09-09

同学你好,关于同学的问题:

1、makeDirath(targetAddr);中是根据PathUtil类中的设置获取的,如:

http://img.mukewang.com/climg/5f58423c09a21c5f09120473.jpg

在addShopImg()方法中,调用generateThumbnail()方法时,传入PathUtil类中存储图片的相对路径"/upload/item/shop/" + shopId +"/"

http://img.mukewang.com/climg/5f58421609674b0c10460187.jpg

在makeDirPath()方法中,获取绝对路径,如:

http://img.mukewang.com/climg/5f584299099115dd08380227.jpg

按照如上代码,在上传图片时,就会上传到D:/projectdev/image/upload/item/shop/xx/目录下(win系统)

2、绝对路径和相对路径不是文件名的差距。这里的绝对路径是在相对路径的基础上加上存储到本地的目录,所以绝对路径和相对路径相差了存储到本地的具体目录。另外这里的相对路径具体到文件名,而绝对路径只是目录。

3、targetAddr并不是绝对路径,只是方法传入的相对值路径,具体应该是第二张图中的dest,也就是"/upload/item/shop/" + shopId +"/"。

PathUtil.getImgBasePath()+relativeAddr是获取本地磁盘的存储目录,加上相对值路径,就是绝对路径。

祝:学习愉快~


0

0 学习 · 8263 问题

查看课程

相似问题