开发环境:
1.操作系统Win10。
2.下载Java 15,提取码:soft
3.下载软件 Eclipse 2020-12,提取码:soft
1.判断URL是否有效
下面这个方法用来判断URL是否是有效的链接
/**
* ping url,并获得ping的结果
* @param url
* @return
*/
public static boolean ping(String url) {
try {
final URLConnection connection = new URL(url).openConnection();
connection.connect();
return true;
} catch (final MalformedURLException e) {
return false;
} catch (final IOException e) {
return false;
}
}
}
2.获取internet快捷方式的URL链接
读取internet快捷方式中的url字符串信息
/**
* 获取Internet的url文件的url信息
*
* @param file Internet的url文件
* @return url字符串
*/
public String getURL(File file) {
try {
FileInputStream fis = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
// 读取文件信息
String str = null;
while ((str = reader.readLine()) != null) {
if (str != null && str.length() > 3 && str.substring(0,3).equals("URL")) {
// 返回URL
return str.substring(4);
}
}
fis.close();
reader.close();
} catch (IOException e) {
return null;
}
return null;
}
3.遍历收藏夹下所有文件
/**
* 遍历所有收藏夹文件,并判断收藏的url是否有效
* @param files
* @throws IOException
*/
public void getFiles(File files) throws IOException {
if (files != null && files.listFiles() != null) {
for (File file : files.listFiles()) {
this.getFiles(file);
// 如果file是文件的场合
if (!file.isDirectory()) {
// 获取url
String url = getURL(file);
// ping url,并判断url是否有效
if (url == null || !ping(url)) {
System.out.println(file.getAbsolutePath());
System.out.println(url);
System.out.println("状态:失效\n");
}
}
}
}
}
4.main方法运行
下面是全部的代码,main方法里写入收藏夹地址,判断url是否有效
package demo.jianruibin;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
@SuppressWarnings("resource")
public class QuickLNKCheck {
public static void main(String[] args) throws IOException{
QuickLNKCheck qlc = new QuickLNKCheck();
// 收藏夹路径
qlc.getFiles(new File("C:\\Users\\Jerry\\Favorites"));
}
/**
* 遍历所有收藏夹文件,并判断收藏的url是否有效
* @param files
* @throws IOException
*/
public void getFiles(File files) throws IOException {
if (files != null && files.listFiles() != null) {
for (File file : files.listFiles()) {
this.getFiles(file);
// 如果file是文件的场合
if (!file.isDirectory()) {
// 获取url
String url = getURL(file);
// ping url,并判断url是否有效
if (url == null || !ping(url)) {
System.out.println(file.getAbsolutePath());
System.out.println(url);
System.out.println("状态:失效\n");
}
}
}
}
}
/**
* 获取Internet的url文件的url信息
*
* @param file Internet的url文件
* @return url字符串
*/
public String getURL(File file) {
try {
FileInputStream fis = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(fis));
// 读取文件信息
String str = null;
while ((str = reader.readLine()) != null) {
if (str != null && str.length() > 3 && str.substring(0,3).equals("URL")) {
// 返回URL
return str.substring(4);
}
}
fis.close();
reader.close();
} catch (IOException e) {
return null;
}
return null;
}
/**
* ping url,并获得ping的结果
* @param url
* @return
*/
public static boolean ping(String url) {
try {
final URLConnection connection = new URL(url).openConnection();
connection.connect();
return true;
} catch (final MalformedURLException e) {
return false;
} catch (final IOException e) {
return false;
}
}
}
5.运行结果
部分运行结果如下:
C:\Users\Jerry\Favorites\Links\个人开发\elasticsearch-head.url http://localhost:9100/ 状态:失效 |