用过kindle的童鞋知道,kindle的documents目录下,会产生很多类似于下面的临时文件夹。

最新版软件下载地址:http://pan.baidu.com/s/1eSPG4RS

主要是,即便你在kindle上删除了书籍,这些临时文件夹依然存在,有没有办法只删除哪些已经看完的书籍的临时文件呢?

如果直接搜索.sdr和.dir目录,会将所有的目录列出来,不方便筛选,于是我写了这个小工具,只删除没有对应书籍的临时目录!

直接将kindle的documents目录拖拽到小工具,选择移动目录(防止误删,一般不会误删,搜寻逻辑没问题),确定即可!

这时,会在移动目录中保留被删除的目录(实际上是移动,防止误删,保持了目录结构!)。

核心代码:

//author:autumoon
//联系QQ:4589968
//日期:2021-02-02// TODO:  在此添加命令处理程序代码CString strDstDir;GetDlgItemText(IDC_EDIT_DIR, strDstDir);if (!strDstDir.GetLength()){strDstDir = CMfcStrFile::BrowseDir(true, "选择移动文件到哪个文件夹");if (strDstDir.GetLength() > 0){SetDlgItemText(IDC_EDIT_DIR, strDstDir);}else{return;}}//   if (strSrcDir == strDstDir)
//  {
//      MessageBox(_T("源地址和目标地址不能相同!"), _T("警告!"), MB_ICONWARNING);
//      return;
//  }std::vector<_tstring> vItems;int nItemNum = m_listItems.GetItemCount();for (int i = 0; i < nItemNum; ++i){CString strCurItem = m_listItems.GetItemText(i, 0);_tstring stCurItem = CMfcStrFile::CString2string(strCurItem);vItems.push_back(stCurItem);}_tstring stDstDir = CMfcStrFile::CString2string(strDstDir);if (vItems.size() == 0 || !CStdDir::IfAccessDir(stDstDir) && !CStdDir::CreateDir(stDstDir)){return;}//获取文件_tstring stSrcDir = CMfcStrFile::CString2string(strDstDir);if (vItems.size() == 0){AfxMessageBox(_T("请添加Kindle目录!"));return;}//保存配置文件m_cfg.vItemPaths = vItems;m_cfg.vSrcDirs.clear();m_cfg.vSrcDirs.push_back(stSrcDir);m_cfg.vDstPaths.clear();m_cfg.vDstPaths.push_back(stDstDir);WriteIniFile(GetIniPath(), m_cfg);//开始显示进度CTaskBarProgress tbp(m_hWnd);CProgressInterface* ppi = &tbp;ppi->Start();CElapsedTime et;//记录日志CLOG::Out(_T("%s"), _T("start task!"));//记录耗时et.Begin();/*********************************这里增加主程序 开始***************************************///处理所有项目,推荐判断项目是否存在stDstDir = CStdStr::AddSlashIfNeeded(stDstDir);const _tstring stDstItem = stDstDir;for (int i = 0; i < nItemNum; ++i){const _tstring& stCurDir = vItems[i];//如果是目录if(PathIsDirectory(stCurDir.c_str()) && CStdStr::AddSlashIfNeeded(stCurDir) != stDstDir){//处理文件夹std::vector<_tstring> vSubDirs;size_t nSubDirCount = getDirs(stCurDir, vSubDirs, true);for (int j = 0; j < nSubDirCount; ++j){_tstring stSubSrcDir = vSubDirs[j];//如果该文件是需要被处理的文件_tstring strName = CStdStr::GetNameOfDir(stSubSrcDir);//文件夹名中必须包含.dirif (strName.find(".dir") != _tstring::npos){_tstring stFileName = stSubSrcDir.substr(0, stSubSrcDir.length() - 4);//sdr目录_tstring stSdrDir = CStdStr::AddSlashIfNeeded(CStdStr::GetDirOfFile(stFileName)) + CStdStr::GetNameOfFile(stFileName, false) + ".sdr";if (!CStdFile::IfAccessFile(stFileName)){//移动到目标目录_tstring strSubDstFile = stDstDir + stSubSrcDir.substr(CStdStr::AddSlashIfNeeded(stCurDir).length());_tstring strSubDir = CStdStr::GetDirOfFile(strSubDstFile);if (!CStdDir::IfAccessDir(strSubDir) && !CStdDir::CreateDir(strSubDir)){continue;}//移动文件夹到指定的文件夹moveDir(stSubSrcDir.c_str(), strSubDir.c_str());//如果存在sdr目录,则同时移动if (PathIsDirectory(stSdrDir.c_str())){//移动到目标目录strSubDstFile = stDstDir + stSdrDir.substr(CStdStr::AddSlashIfNeeded(stCurDir).length());strSubDir = CStdStr::GetDirOfFile(strSubDstFile);if (!CStdDir::IfAccessDir(strSubDir) && !CStdDir::CreateDir(strSubDir)){continue;}moveDir(stSdrDir.c_str(), strSubDir.c_str());}}}ppi->SetProgressValue(j + 1, nSubDirCount);}}}/*********************************这里增加主程序 结束***************************************///结束耗时int nMin = 0, nSecond = 0, nMilliSecond = 0;et.End(nMin, nSecond, nMilliSecond);//结束日志CLOG::Out(_T("%s"),_T("end task!"));CLOG::Out(_T("This task costs %d min %d second %d millisecond!"), nMin, nSecond, nMilliSecond);CLOG::End();//结束进度显示ppi->End();FlashWindow(TRUE);#ifdef DLG_ELAPSED_TIMECString strTips;strTips.Format(_T("本次耗时 %d分%d秒%d毫秒!"), nMin, nSecond, nMilliSecond);AfxMessageBox(strTips);
#elseAfxMessageBox(IDS_PROCESS_OVER);
#endif // DLG_ELAPSED_TIME

欢迎交流与讨论。

kindle清理小工具(清理临时文件夹)相关推荐

  1. Maven本地缓存清理小工具

    有个时候多人多team协作开发过程中,会存在临时修改的二方包,同样版本需要重新拉取的情况.发现大部分人包括自己长久以来也是采用最原始的方法,一层层找到对应的目录删除对应的文件.某天实在是受不了了,写了 ...

  2. win10C盘清理小工具分享

    代码如下: @echo offecho 专门为windows10而写,因而更专业!按任意键清理您的系统垃圾!echo 清理C盘set /p input=请选择(1)清理系统垃圾(2)专清腾讯垃圾(3) ...

  3. 【定制开发】【M8】推荐一款强大的磁盘清理小工具,专治磁盘爆满(不到1M)

     工具下载:foldersize.zip-其它文档类资源-CSDN下载 今天打开电脑,发现磁盘已经红色警告了...所以电脑速度真的是太感人了! 要把吃磁盘的罪魁祸首抓出来,想起来朋友前些日子聊天时力荐 ...

  4. 写了两个简单的小工具,文件夹文件操作的

    一,文件夹A下的文件夹下的文件,移到文件夹A下. 二,经常上贴吧什么的,有些图贴,会直接网页全部保存为,结果是一个html文件,和引用资源的文件夹,文件夹下有很多无用的文件,写了个方法,把图片另存为, ...

  5. CleanMyMac X国外中文注册激活版Mac系统清理优化工具

    CleanMyMac X国外最新中文版Mac系统清理优化工具,为了维护mac系统健康,优化系统功能,我们需要定期给电脑进行清理.这款软件外观简洁大气,操作方便易上手,功能齐全,能够解决常用问题. 支持 ...

  6. springcloud工作笔记092---清理多余权限垃圾数据小工具

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 小工具: 清理权限相关的垃圾数据. DELETE FROMsys_roleaccess WHERE ...

  7. 用Python制作一个随机抽奖小工具

    最近在工作中面向社群玩家组织了一场活动,需要进行随机抽奖,参考之前小明大佬的案例,再结合自己的需求,做了一个简单的随机抽奖小工具. 今天我就来顺便介绍一下这个小工具的制作过程吧! 先看效果: 1. 核 ...

  8. bat 批处理 小工具

    bat 批处理 小工具 获取文件夹文件名 获取文件夹文件名 // 获取文件夹文件名 DIR . /B >list.txt# 获取文件夹文件名 ```bat // 字符串截取 @echo off ...

  9. 浏览器html5临时文件,电脑中清理浏览器临时文件夹的方法

    用户在电脑中浏览网页的时候,浏览器都会自动下载一些文件,虽然这些文件是临时的,但是如果长时间不清理,这些临时文件就会占用磁盘空间.接下来,系统城小编就带大家看看电脑中清理浏览器临时文件夹的具体方法. ...

最新文章

  1. RGB与16进制颜色转换的原理
  2. 2021年春季学期-信号与系统-第八次作业参考答案-第五小题
  3. java 构造方法
  4. 微软职位内部推荐-Senior SDE for Cloud Platform
  5. [2] SSD配置+训练VOC0712+训练自己的数据集
  6. Objective C ARC 使用及原理
  7. 前端学习(2863):简单秒杀系统学习之优化cookie
  8. C++的decltype
  9. Telnet 窗口看不见字符
  10. Android抓包方法(一) 之Fiddler代理
  11. java rhino js类_Rhino -- 基于java的javascript实现
  12. java播放器显示歌词,android 音乐播放器显示歌词源码(天天动听悬浮歌词)
  13. 怎么修改PDF文件中的图片以及文字
  14. 《社会智能与综合集成系统》—第1章1.6节 智慧涌现
  15. python0基础 第三节
  16. Android12 HDR相关
  17. Excel PivotTable 使用心得手顺分享(六)
  18. GAN之父离开苹果重返谷歌,SpaceX最新估值达1250亿美元,美国官方公布UFO进展,今日更多大新闻在此...
  19. 简单的java单位换算_Java实现蓝桥杯单位转换
  20. webcam包的使用介绍

热门文章

  1. 面向次世代的Windows App SDK 近况
  2. Windows10安装配置Rime双拼输入法
  3. 为什么专用服务器要选择至强Xeon系列的处理器呢?
  4. 简帛企业云智库知识管理系统
  5. 当别人的话很刺耳时怎么办?
  6. 人工智能-高等数学之微积分篇
  7. 【51单片机 】定时器的初始值计算 详解
  8. 在windbg中显示win32k.sys调试符号
  9. 第三方推送(小米华为友盟)接入实践
  10. python数值类型教程_Python 基础数据类型-数值类型