设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 3611|回复: 4
收起左侧

易语言实现的简易文件粉碎机 支持拖放粉碎多文件目录与fsutil命令填充空数据防止恢复

[复制链接]
发表于 2018-5-3 10:44:17 | 显示全部楼层 |阅读模式

  1. .版本 2
  2. .支持库 spec

  3. .程序集 易文件粉碎机
  4. .程序集变量 程序标题, 文本型

  5. .子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
  6. .局部变量 文件列表, 文本型, , "0"

  7. 取命令行 (文件列表)
  8. 程序标题 = “易文件粉碎机”
  9. .如果 (取数组成员数 (文件列表) = 0)
  10.     文件列表 = 多文件对话框 (程序标题, , , , , )  ' 双击运行
  11. .否则
  12.     调试输出 (文件列表)  ' 拖放运行

  13. .如果结束
  14. 粉碎多文件 (文件列表)
  15. 返回 (0)  ' 可以根据您的需要返回任意数值


  16. .子程序 粉碎多文件
  17. .参数 文件名, 文本型, 数组
  18. .局部变量 计数, 整数型
  19. .局部变量 文件数, 整数型
  20. .局部变量 成功数, 整数型
  21. .局部变量 失败数, 整数型
  22. .局部变量 时间, 整数型

  23. 文件数 = 取数组成员数 (文件名)
  24. .如果真 (文件数 = 0)
  25.     返回 ()
  26. .如果真结束
  27. .如果真 (信息框 (“粉碎后不可恢复,确定粉碎” + 到文本 (文件数) + “个文件(目录)?”, 33, 程序标题, ) = 1)  ' 取消粉碎
  28.     返回 ()
  29. .如果真结束
  30. 时间 = 取启动时间 ()
  31. .计次循环首 (文件数, 计数)
  32.     .如果 (粉碎文件 (文件名 [计数]))
  33.         成功数 = 成功数 + 1
  34.     .否则
  35.         失败数 = 失败数 + 1
  36.     .如果结束

  37. .计次循环尾 ()
  38. 时间 = 四舍五入 ((取启动时间 () - 时间) ÷ 1000, 0)
  39. 信息框 (“文件粉碎任务完成! 成功” + 到文本 (成功数) + “个,失败” + 到文本 (失败数) + “个,耗时” + 到文本 (时间) + “秒。”, 64, 程序标题, )
  40. 返回 ()

  41. .子程序 粉碎文件, 逻辑型
  42. .参数 文件名, 文本型
  43. .局部变量 尺寸, 整数型
  44. .局部变量 命令, 文本型

  45. .如果真 (文件是否存在 (文件名) = 假)
  46.     返回 (假)
  47. .如果真结束
  48. 尺寸 = 取目录尺寸 (文件名)
  49. .如果真 ((删除目录 (文件名) 或 删除文件 (文件名)) = 假)
  50.     返回 (假)
  51. .如果真结束
  52. 命令 = “fsutil file createnew @|A@ |B”
  53. 命令 = 子文本替换 (命令, “@”, #引号, , , 真)
  54. 命令 = 子文本替换 (命令, “|A”, 文件名, , , 真)
  55. .如果真 (尺寸 ≤ 1048576)
  56.     尺寸 = 1048576
  57. .如果真结束
  58. 命令 = 子文本替换 (命令, “|B”, 到文本 (尺寸), , , 真)
  59. .如果真 (运行 (命令, 真, 1) = 假)
  60.     信息框 (“fsutil 命令运行错误!”, 16, 程序标题, )
  61.     结束 ()
  62. .如果真结束
  63. .如果真 (删除文件 (文件名) = 假)
  64.     返回 (假)
  65. .如果真结束
  66. 返回 (真)


  67. .子程序 取目录尺寸, 长整数型
  68. .参数 目录名, 文本型
  69. .局部变量 文件表, 文本型
  70. .局部变量 文件数组表, 文本型, , "0"
  71. .局部变量 计数, 整数型
  72. .局部变量 尺寸, 整数型
  73. .局部变量 总尺寸, 整数型
  74. .局部变量 文件数, 整数型

  75. 目录名 = 子文本替换 (目录名, “/”, “\”, , , 真)
  76. .如果真 (取文本右边 (目录名, 1) = “\”)
  77.     目录名 = 取文本左边 (目录名, 取文本长度 (目录名) - 1)
  78. .如果真结束
  79. .如果 (寻找文本 (目录名, 字符 (32), , 假) = -1)
  80.     运行控制台程序 (“cmd /c dir /b /s ” + 控制台文本转义 (目录名), 文件表, , )
  81. .否则
  82.     运行控制台程序 (“cmd /c dir /b /s ” + #引号 + 控制台文本转义 (目录名) + #引号, 文件表, , )
  83. .如果结束
  84. 文件数组表 = 分割文本 (文件表, #换行符, )
  85. 文件数 = 取数组成员数 (文件数组表)
  86. .如果真 (文件数 = 0)
  87.     尺寸 = 取文件尺寸 (目录名)
  88.     .如果真 (尺寸 ≤ 0)
  89.         尺寸 = 0
  90.     .如果真结束
  91.     返回 (尺寸)
  92. .如果真结束
  93. .计次循环首 (文件数, 计数)
  94.     尺寸 = 取文件尺寸 (文件数组表 [计数])
  95.     .如果真 (尺寸 ≥ 0)
  96.         总尺寸 = 总尺寸 + 尺寸
  97.     .如果真结束

  98. .计次循环尾 ()
  99. 返回 (总尺寸)


  100. .子程序 控制台文本转义, 文本型
  101. .参数 文本, 文本型
  102. .局部变量 计数, 整数型
  103. .局部变量 单字符, 文本型
  104. .局部变量 文本2, 文本型

  105. 文本2 = 文本
  106. .计次循环首 (7, 计数)
  107.     单字符 = 取文本中间 (“^%&*<>|”, 计数, 1)
  108.     文本2 = 子文本替换 (文本2, 单字符, “^” + 单字符, , , 真)
  109. .计次循环尾 ()
  110. 返回 (文本2)
复制代码


相关帖子

发表于 2018-5-3 12:57:56 | 显示全部楼层
只是个一般的删除文件并覆盖,没有强力删除的功能。
发表于 2018-5-3 15:54:47 | 显示全部楼层
Cute 发表于 2018-5-3 12:57
只是个一般的删除文件并覆盖,没有强力删除的功能。

怪不得有些删不了
发表于 2018-5-4 09:52:08 | 显示全部楼层
我也来瞅瞅
您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-3-28 20:07 , Processed in 0.414023 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表