回 帖 发 新 帖 刷新版面

主题:[讨论]TO:红尘(删除文件的程序)

'[color=0000FF]调用格式: delfile  file.dll  C:E:D:[/color]

DEFLNG A-Z              '[color=0000FF]默认所有未声明变量为长整形[/color]
DECLARE SUB ChangeDataDrive (filespec$)
tofind$ = COMMAND$      '[color=0000FF]读命令行参数[/color]
ON ERROR RESUME NEXT    '[color=0000FF]出错处理[/color]
'tofind$ = "*.bas C:D:E:"  '[color=0000FF]这个是我调试的时候用的[/color]
tofind$ = RTRIM$(LTRIM$(UCASE$(tofind$)))     '[color=0000FF]把所有字母变大写,去掉前后空格[/color]
CLS
PRINT tofind$
i = INSTR(1, tofind$, CHR$(32))  '[color=0000FF]找中间(文件名和盘符之间的)空格[/color]
IF i THEN
   c$ = MID$(tofind$, i + 1)     '[color=0000FF]找目标盘符[/color]
   tofind$ = LEFT$(tofind$, i - 1)
END IF
IF c$ = "" THEN c$ = "C:"

'cur$ = CURDIR$         '[color=0000FF]这一句忘记删掉了,所以4.5才通不过的[/color]
curf$ = "C:\bak2005.tmp"   '[color=0000FF]临时存放DIR结果的文件[/color]
PRINT "Seaching....  (On Dos's Diring....)"
DO
  p = INSTR(p + 1, c$, ":")  '[color=0000FF]找盘符的冒号[/color]
  IF p = 0 THEN EXIT DO      '[color=0000FF]查完退出[/color]
  cc$ = MID$(c$, p - 1, 2)   '[color=0000FF]单个盘符[/color]
  PRINT cc$
  SHELL cc$                  '[color=0000FF]转到该盘去[/color]
  CHDIR "\"                  '[color=0000FF]到根目录去[/color]
  SHELL "dir /s " + tofind$ + " >>" + curf$   '[color=0000FF]定重向连接到文件末[/color]
LOOP UNTIL ERR               '[color=0000FF]出错即退出[/color]

killedf$ = "C:\deled.txt"    '[color=0000FF]用文件记录删除历史[/color]
f2% = FREEFILE               '[color=0000FF]空闲文件号[/color]
OPEN killedf$ FOR APPEND AS #f2%   '[color=0000FF]从文件末记录删除历史[/color]
a$ = ":\"       '[color=0000FF]DIR结果中,有路径特征的就是这两个符号了[/color]
fr% = FREEFILE               '[color=0000FF]第二个空闲文件号[/color]
OPEN curf$ FOR INPUT AS #fr%
DO UNTIL EOF(fr%)            '[color=0000FF]到达文件末退出[/color]
   li = li + 1               '[color=0000FF]正在读文件的第几行[/color]
   LOCATE , 2
   PRINT "Reading line"; li; "....",
   LINE INPUT #fr%, s$       '[color=0000FF]读入行字符串[/color]
   i = INSTR(1, s$, a$)      '[color=0000FF]是否含有路径特征[/color]
   IF i THEN
      k$ = MID$(s$, i - 1)   '[color=0000FF]目录路径名[/color]
      IF RIGHT$(k$, 1) <> "\" THEN k$ = k$ + "\"  '[color=0000FF]根目录是不一样的[/color]
      k$ = k$ + tofind$      '[color=0000FF]在路径后面加上文件名[/color]
      PRINT "Killing "; k$   
      shell "attrib -h -r -s "+k$  '[color=0000FF]这一句是你提醒才加上去的[/color]
      KILL k$                '[color=0000FF]删除文件[/color]
      PRINT #f2%, "At "; DATE$, TIME$; " to killed the file - :< "; k$; " > "
   END IF                    '[color=0000FF]记录删除历史[/color]
LOOP
CLOSE
KILL curf$                  '[color=0000FF]把这个临时文件删除掉[/color]
PRINT "Press the Key <Enter> to View the killed files list, Any key else to Exit."
IF INPUT$(1) = CHR$(13) THEN SHELL "edit " + killedf$  '[color=0000FF]按回车进入删除历史的浏览[/color]
SYSTEM

回复列表 (共4个回复)

沙发

不懂!

板凳

爷爷你存心出来下人啊,都没人敢来看了

3 楼

MOZ:
看来我的函数是没用的了,哎!!!

4 楼

哦? 你这是怀才不遇吗?
你是说你的中断吗?
不要妄自菲薄,有用的东西通常都是没人赏识的
真理总是要经过磨炼的,知道吧.

我来回复

您尚未登录,请登录后再回复。点此登录或注册