解决csdn网页离线后打开自动跳转并批量处理下载的所有csdn文件

博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏。

一、问题

        我们下载到本地的一些不错的csdn文件,有时候需要离线时候打开查看,点击打开会自动跳转首页,这样搞得自己非常烦。

二、原因

          出现这种情况的原因是csdn的index.html里面有个方法onerror进行跳转,当点击本地保存的csdn文件时,会进行自动跳转。onerror方法如下:

 三、解决方法

        1、我们可以notepad++打开,ctrl+H,替换所有的onerror字段为xxxx,然后保存,这样就不会自动跳转了。

        2、那么又出现一种情况,我们需要看的资料有这么多呢,难道一个文件一个文件去保存吗

         3、可以考虑写个程序,遍历该文件下的所有文件,读出所有内容,将onerror字符串替换为xxxx,这样执行一下,就可以搞定了,花不到10秒,这一堆文件就好了。代码如下。需要的小伙伴可以收藏一下。

(1)先获取保存离线文件的文件夹路径,遍历改路径下的文件和文件夹。

(2)是文件夹就跳过,文件就读取所有内容,并执行替换replaceAll方法。

(3)最后将替换后的内容再次写入文件。

import com.jiankang.filecontentreplace.config.FileConfig;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.List;

/**
 * FileExecute
 *
 * @author jiankang.xu
 * @date 2021/9/20
 */
public class FileExecute {

    public final static String LINE_SEP = System.getProperty("os.name").toLowerCase().contains("linux") ? "\n" : "\r\n";

    public static void main(String[] args) {
        String filepath = "C:\\Users\\徐健康\\Desktop\\0920";
        String result = executeFile(filepath);
        System.out.println(result);
    }

    private static String executeFile(String filepath){
        File file = new File(filepath);
        File[] files = file.listFiles();
        for (File subFile : files) {
            if(subFile.isDirectory()){
                continue;
            }
            if(subFile.isFile()){
                try {
                    List<String> lines = IOUtils.readLines(new FileInputStream(subFile.getAbsolutePath()));
                    String indexContent = String.join(LINE_SEP, lines);
                    indexContent = indexContent.replaceAll("onerror", "xxxx");
                    IOUtils.write(indexContent, new FileOutputStream(subFile.getAbsolutePath()));
                }catch (Exception e){

                }
            }
        }
        return "success";
    }

}

四、总结

        以上就是如何解决csdn网页离线后打开自动跳转的问题,然后写了个脚本批量处理下载的所有csdn文件,觉得不错的话,欢迎微信搜索关注java基础笔记,后面会不断更新相关知识,大家一起进步。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐jiankang

欢迎关注java基础笔记公众号

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值