PC端QQ默认缓存保存路径在C盘,如果你的群聊比较多的话,那么你的系统盘可能已经变成QQ的形状了,里面被装得满满。那么,使用QQ自带的文件清理?哒咩哒呐。那么手动删除?windows会先清点垃圾,然后在排队销毁或扔进回收站,但是保不准,最近要看的群聊图片裂掉再也加载不了。那么,咋办捏?
废话不多说,用宇宙人都会的JAVA演示。请务必确认路径和时间设置正确,避免杯具发生。
全局变量,文件计数,文件夹计数,统计大小,时间。 static int fileCount=0; static int emptyDirCount=0; static Long fileSizeCount=0L; static Calendar setTime= Calendar.getInstance();
通过文件大小软件分析,QQ缓存很大的罪魁祸首是QQ群图片缓存,路径默认为
C:\\Users\\(登录的windows的用户名)\\Documents\\Tencent Files\\(你的QQ号)\\Image\\Group2
//删除Start!
//set(年,月,日) 月份从0开始,11表示12月。
//下面设置的是5月1号
setTime.set(2022,4,1,0,0,0);
//下面的路径是QQ个人文件夹的实际路径,设置过保存到别的盘的,具体看QQ设置-基本设置-文件管理-选择个人文件夹 里的路径。如下加粗部分为共通路径。
File qqGroupImgDir = new File("D:\\Save\\QQRecv\\(QQ号)\\Image\\Group2");
//把垃圾车开进windows创死垃圾文件
removeFileForTime(qqGroupImgDir);
//然后收拾下残骸,回收被占用的领地
removeEmptyDir(qqGroupImgDir);
System.out.println("共删除"+fileCount+"个文件,"+emptyDirCount+"个空文件夹,"+"总共"+(fileSizeCount/1024)+"KB");
public static void removeFileForTime(File dir){
File[] files=dir.listFiles();
for(File f : files){
if(f.isDirectory()){
removeFileForTime(f);
}else{
Calendar filetime = Calendar.getInstance();
filetime.setTimeInMillis(f.lastModified());
if(filetime.before(setTime)){
fileCount++;
Long fileSizes = f.length();
fileSizeCount += fileSizes;
//输出些调试信息,基本不会有删除失败的。失败的要处理异常,建议把QQ先关了。
System.out.println(fileCount+":"+f.getAbsolutePath()+"|"+filetime.getTime()+"|"+(fileSizes/1024)+"|"+f.delete());
}
}
}
}
public static void removeEmptyDir(File dir) {
File[] files;
if((files = dir.listFiles())==null)
{
System.out.println("不是目录");
return;
}
if(files.length==0){
emptyDirCount++;
//输出调试信息
System.out.println(emptyDirCount+":"+dir.getAbsolutePath()+"--dir--:"+dir.delete());
}
else {
for(File f : files) {
if(f.isDirectory())
removeEmptyDir(f);
}
}
}