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); } } }