markdown清除本地冗余图片文件Java源码

        所用腾讯微盘同步助手即时同步文件,图片文件也是设置默认保存在笔记目录下。Markdown有一个问题就是文档中图片链接删除,源文件仍会存在于图片文件夹,下列这个程序可以对比并删除冗余的图片或资源文件(假删除,冗余文件将会移动到笔记文件夹中到 回收站 文件夹中,确定要删除时可以将整个文件夹手动删除)。public class Main {    static ArrayList<String> list= new ArrayList<>();    static String text;    public static void main(String[] args) {        File file = new File("D:\\微云同步助手\\QQ\\笔记");        //获取其file对象      //获取其file对象        func(file);        for (String s : list) {            String fileName = s.substring(s.lastIndexOf("\\") + 1, s.length());//获取文件名            if (!text.contains(fileName)){ //如果图片等资源在md内容中不存在即删除                System.out.println(fileName+"删除成功");                String hs=file+"\\回收站\\";                if (!new File(hs).exists())                    new File(hs).mkdir();                new File(s).renameTo(new File(hs+fileName));            }        }    }    /**     * 遍历目录     * @param file     */    private static void func(File file) {        File[] fs = file.listFiles();        for (File f : fs) {            if (f.isDirectory() && !f.toString().contains("回收站"))    //排除回收站目录                func(f);            if (f.isFile()) {      //若是文件,直接打印详细路径                String s = f.toString();                if (s.endsWith(".md")) {//获取md文件内容                    text += readToString(s);                } else {                    list.add(s);                }            }        }    }    /**     * 获取文本     * @param fileName     * @return     */    public static String readToString(String fileName) {        String encoding = "UTF-8";        File file = new File(fileName);        Long filelength = file.length();        byte[] filecontent = new byte[filelength.intValue()];        try {            FileInputStream in = new FileInputStream(file);            in.read(filecontent);            in.close();        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }        try {            return new String(filecontent, encoding);        } catch (UnsupportedEncodingException e) {            System.err.println("The OS does not support " + encoding);            e.printStackTrace();            return null;        }    }}当然也可以用BufferedReaderpublic class Main {    static ArrayList<String> list= new ArrayList<>();    static StringBuilder text=new StringBuilder();    /**     * 暴力比较     * @param args     * @throws IOException     */    public static void main(String[] args) throws IOException {        long start = System.currentTimeMillis();        File file = new File("D:\\坚果云\\CodeNote");        //获取其 file 对象        System.out.println("正在处理中……");        func(file);        for (String s : list) {            String fileName = s.substring(s.lastIndexOf("\\") + 1, s.length());//获取文件名            if (!text.toString().contains(fileName)){ //如果图片等资源在 md 内容中不存在即删除                System.out.println(fileName+"删除成功 ");                String hs=file+"\\回收站\\";                if (!new File(hs).exists())                    new File(hs).mkdir();                new File(s).renameTo(new File(hs+fileName));            }        }        long end=System.currentTimeMillis();        long time=end-start;        System.out.println("已完成,耗时"+time+" ms, 请按任意键退出");        System.in.read();    }    /**     * 遍历目录     * @param file     */    private static void func(File file) throws IOException {        File[] fs = file.listFiles();        for (File f:fs) {            if (f.isDirectory() && !f.toString().contains("回收站"))    //排除回收站目录                func(f);            if (f.isFile()) {      //若是文件,直接打印详细路径                String s = f.toString();                if (s.endsWith(".md")) {//获取 md 文件内容                    text.append(readToString(s));                    System.out.println("读取"+text.length()/1000+"K个字符");                } else {                    list.add(s);                }            }        }    }    /**     * 获取文本     * @param fileName     * @return     */    public static String readToString(String fileName) throws IOException {        BufferedReader br = new BufferedReader(new FileReader(fileName));        String line;        StringBuilder txt = new StringBuilder();        while ((line = br.readLine()) != null) {            txt.append(line);        }        br.close();        return txt.toString();    }}再改进下吧,用正则,精确点匹配(也不是很精确,因为不同文件夹可能有同名文件,不过能保证一个文件夹有文件 a.png跟 aaa.png不至于都匹配上)package com.company;import java.io.*;import java.util.ArrayList;import java.util.regex.Matcher;import java.util.regex.Pattern;public class Main {    static ArrayList<String> list= new ArrayList<>();    static StringBuilder text=new StringBuilder();    public static void main(String[] args) throws IOException {        ArrayList<String> picList = new ArrayList<>();        long start = System.currentTimeMillis();        File file = new File("D:\\坚果云\\CodeNotes");        //获取其 file 对象        System.out.println("正在处理中……");        func(file);        int i=0;        int delCount=0;        String ContentArea = text.toString();        String regex = "\\(assets/.*?\\.\\w+\\)";        Pattern pt=Pattern.compile(regex);        Matcher mt=pt.matcher(ContentArea);        while(mt.find()) {            String replace = mt.group().replace("(assets/", "").replace(")", "");            picList.add(replace);            i++;        }        System.out.println("原文包含"+i+"张图片");        for (String s : list) {            String fileName = s.substring(s.lastIndexOf("\\") + 1, s.length());//获取文件名            int count=0;            for (String pic : picList) {                if (pic.equals(fileName)){                    count++;                }            }            if (count<=0){                delCount++;//                System.out.println(fileName+"删除成功 ");                String hs=file+"\\回收站\\";                if (!new File(hs).exists())                    new File(hs).mkdir();                if (!new File(s).renameTo(new File(hs + fileName))){                    new File(hs + fileName).delete();                    new File(s).renameTo(new File(hs + fileName));                }            }        }        long end=System.currentTimeMillis();        long time=end-start;        System.out.println("已清理"+delCount+"张图片或文件,耗时"+time+" ms, 请按任意键退出");        System.in.read();    }    private static void func(File file) throws IOException {        File[] fs = file.listFiles();        for (File f:fs) {            if (f.isDirectory() && !f.toString().contains("回收站"))    //排除回收站目录                func(f);            if (f.isFile()) {      //若是文件,直接打印详细路径                String s = f.toString();                if (s.endsWith(".md")) {//获取 md 文件内容                    text.append(readToString(s));                } else {                    list.add(s);                }            }        }    }    public static String readToString(String fileName) throws IOException {        BufferedReader br = new BufferedReader(new FileReader(fileName));        String line;        StringBuilder txt = new StringBuilder();        while ((line = br.readLine()) != null) {            txt.append(line);        }        br.close();        return txt.toString();    }}

给button加超链接 window.open与window.location.href区别

加超链接很简单,只需要在标签里添加点击事件:onclick="window.open('/admin/goods_edit.html')"或者onclick="window.location.href='/admin/goods_edit.html'"再抑或在外部加个a标签即可。window.open只是打开页面window.location.href打开页面并刷新

VMware Workstation与Hyper-V不兼容 请先从系统中移除Hyper-V角色\无法打开内核设备 \\.\Global\vmx86: 系统找不到指定的文件

VMware Workstation与Hyper-V不兼容。请先从系统中移除Hyper-V角色,然后再运行VMware Workstation。解决方法:Hyper-v是微软一款虚拟机软件,这里会跟vmware冲突,因此在功能里把Hyper-v的勾去掉重新启动即可(可以按win+q启动小娜,然后搜索“启用或关闭Win”也可以找到)。另外关闭Windows Defender中的内存隔离:vmware运行安装虚拟机无法打开内核设备 \\.\Global\vmx86: 系统找不到指定的文件原因:是虚拟机服务没有开启解决方法:(以管理员的方式运行)点击“开始→运行”,在运行框中输入 CMD  回车打开命令提示符,然后依次执行以下命令:net start vmcinet start vmx86net start VMnetuserifsc config vmci=autosc config vmx86=autosc config VMnetuserif=auto

VMware Workstation与Hyper-V不兼容 请先从系统中移除Hyper-V角色\无法打开内核设备 \\.\Global\vmx86: 系统找不到指定的文件

Eclipse中validate的禁用不验证快速导入工程

validate的作用其实是验证工程代码的可用性,但是开启后会大大加大导入工程项目的时间,甚至卡在进度条不动了,其实禁用很简单:windows>preferences>validation>disable all 即可

Eclipse中validate的禁用不验证快速导入工程

Eclipse设置代码自动提示与自动保存功能

自动提醒:打开Eclipse,最上面菜单栏选择Windows>preferences>Java>Editor>Content Assist,找到Auto activation 下的子选项auto activation triggers for java后的文本框,输入abcdefghijklmnopqrstuvwxyz.即可,最后一个符号是小写句号,其实顺序可以不一样。自动保存:Windows->Preferences -> General -> Workspace -> Save automatically before build勾选Save automatically before build即可,另外Preferences -> Run/Debug -> Launching -> Save dirty editors before launching 设置为 Always

换电脑无损迁移IDEA设置配置文件的方法

作为Java开发工具,IDEA会在运行后在Windows的用户目录下生成一个以“.IntelliJIdea2018.1”为名称的目录,目录中存储了idea的设置跟一些缓存文件,直接拷贝他们到你的新电脑的用户目录下即可。然后将你的代码也复制到新电脑相应的盘符下。但是问题来了,旧电脑代码都存在F盘,但是新电脑最多只有E盘怎么办?这时候只需要改下新电脑盘符即可:同时按Windows键+X键,然后选择磁盘管理,选择要存代码的盘修改下盘符号即可。再复杂点的办法,一个一个导入之前的项目。不过也有个超级简单的方法,那就是完全不需要之前的项目文件,将.IntelliJIdea2018.1文件夹下的system目录整个删掉,然后打开idea,将之前的项目全选然后移除即可,但是设置储存在.IntelliJIdea2018.1\config中,因此设置不会丢失。当然也可以用idea自带的Export Settings功能导出设置文件,拷贝到新设置然后再重新导入即可。

方方格子Excel全能工具箱 一款所见即所得的实用工具

很强大哦,安装后即可使用,支持微软的office跟国产的WPS,功能很全面,安装好后会在Excel界面显示方方格子的菜单栏。官网:http://www.ffcell.com也可以直接百度搜索“方方格子”即可

电脑PDF转word等其他格式转换工具

有时候在百度文库下载文档,却发现是pdf格式的,编辑起来就有点麻烦了,但是可以使用工具转换成word或者其他格式编辑。下面推荐两款运行于Windows上的实用应用程序:Solid.ConverterSolid Converter PDF,他是一套专门将PDF文件转换成DOC的软件,除了转换成DOC文件外,还可以转换成RTF以及Word XML文件。除此之外,它还有一个图片撷取功能,可以让我们将PDF档里的图片撷取出来,以及将PDF档里的表格撷取出来,并输出到Excel里,方便我们编辑表格里的资料。下载:[ReplyVisible]链接:https://pan.baidu.com/s/13noZBA8JbhxoMtMogEcNmQ 提取码:b0am[/ReplyVisible]PDFelement这款界面相对于第一款就比较精美了,转换速度也有明显提升,官网:https://pdf.wondershare.cn,下载:[ReplyVisible]链接:https://pan.baidu.com/s/1bZoIvGMOKCVjpnj-hXykEg 提取码:s0m1[/ReplyVisible]

Windows10开启护目镜功能保护您的眼睛

上一篇介绍了f.lux这款护目镜软件,但其实对于新版win10用户来说是有自带这个功能的,那么如何开启呢?很简单:按Windows键+S键呼出小娜助手,然后在输入框里输入“夜间模式”,小娜自动将要搜索的功能显示出来,点击进去设置下将其设置为开即可,如下图:在上图你可以选择立即启动并开启计划。如果你不想从小娜里进去,也可以找到 设置>系统>显示,即可看到夜间模式开关。

Windows10开启护目镜功能保护您的眼睛

f.lux护目镜 全天候保护眼睛减少蓝光防疲劳Windows

今天给大家推荐款Windows电脑端的护目镜程序,安卓苹果手机端都有自带的护目程序,也可以下载“薄暮微光”app。但是对于电脑端一款称心如意的根据时间而开启的护目镜应用程序少之又少,今天给大家推荐款程序为“f.lux”,下面直接照搬百度的介绍吧:f.lux 是一个免费电脑软件,兼容绝大多数主流操作系统,作者是 Michael 和 Lorna Herf。它根据用户定义的经纬度、邮编或城市名称所在的位置以及一天当中的时间来调整电脑显示器的色温。软件被设计用来减少夜晚由使用电脑所产生的睡眠紊乱和失眠现象,并在白天使人保持兴奋的状态。简介f.lux 的工作方式是:调节电脑显示器的颜色使之适应使用者一天内的生物钟规律,夜晚使用祥和的暖色调,白天则是像日光一样爽快的白色。 电脑屏幕的颜色不够柔和很可能是人们不自觉地熬夜太晚甚至失眠的原因之一。使用 f.lux 能够促使人养成良好的睡眠习惯,或者仅仅是让屏幕看起来舒服一些。 f.lux 能够全天候使电脑屏幕与所在环境的光线协调一致。当太阳落山,它会使屏幕看起来就像室内光线一样柔和。而在白天,它又能使屏幕看起来和日光一样明亮。 下载当然这款软件不仅仅支持Windows,还有相应的mac、Linux版本,如需下载请点击访问如下的官方下载地址:https://justgetflux.com

f.lux护目镜 全天候保护眼睛减少蓝光防疲劳Windows