问题引入
有的时候,打开电脑,Windows10开机推荐的图片你是不是也觉得很漂亮,很想保存但是有不知道图片存在哪里?比如这种,属实拍得有点对不起观众,总之挺漂亮的就是了,那我们就来看看如何使用Java将图片进行保存并且使用吧!
1、图片在哪
首先清楚图片路径,图片存放在:
“C:/Users/******/AppData/Local/Packages/Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy/LocalState/Assets”,不清楚的朋友可以面向百度编程,很多你不知道的万能的网友都知道。
里面的内容大概是这么个样子:
2、如何操作
首先得清楚你的目的:将符合条件的文件更改为图片并且添加到某个目录中。
- 筛选图片
文件有大有小,桌面为1920×1080,也就是说我只要这个分辨率的图片; - 更改文件名
肯定要更改为图片格式的文件(.jpg/png等)才能被我们所接受; - 复制到目的文件夹
文件修改后,要存起来,以后作为文档配图文案或者直接作为桌面壁纸也不错。
其次,你头脑里得有个大概的编码思路,按 “提需求 ——> 需求分析” 的步骤来是最科学最有效的,我这里为了防止出错和影响系统本身的文件夹就没有在此文件夹上直接进行修改操作,而是在代码中创建了一个临时文件夹,将 “Assets” 这个文件夹的所有文件复制到临时文件夹 “temp” 中,然后读取文件,把合适分辨率的文件添加到目的文件夹 “dest” 中,最后删除临时文件夹即可,总结起来是:
源文件夹(复制)——>临时(修改和复制)——>目的文件夹——>临时文件夹(删除)。
代码大致就是这个样子:
/**
* 将windows开机的壁纸添加到本地图库中
* @author *****
*/
public class Convert {
/**
* windows的开机推荐壁纸所在目录
*/
private static final String SRC_PATH = "C:/Users/*****/AppData/Local/Packages/Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy/LocalState/Assets";
/**
* 要添加的目的路径
*/
private static final String DES_PATH = "C:/Users/*****/Pictures/Windows壁纸";
public static void main(String[] args) {
Convert convert = new Convert();
convert.start();
}
/**
* 开始创建
*/
private void start() {
/*
* 1、创建临时文件夹,将源文件夹中所有内容复制过来
*/
File temp = new File(DES_PATH + File.separator + "temp");
for (File file : Objects.requireNonNull(new File(SRC_PATH).<