| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4216 人关注过本帖, 1 人收藏
标题:VFP中非空文件夹的删除
只看楼主 加入收藏
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
回复 50楼 TonyDeng
一切都在酒中

[ 本帖最后由 sdta 于 2012-2-11 20:45 编辑 ]

坚守VFP最后的阵地
2012-02-11 20:33
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:682
专家分:1299
注 册:2009-3-1
收藏
得分:0 
以下是引用sdta在2012-2-11 20:02:20的发言:


md d:\hs
md d:\hs\aaa

SET DEFAULT TO "d:\hs\aaa"
CLEAR ALL
CLEAR
DelDir("aaa", .F.)
CLEAR ALL
RETURN
试下
这肯定不行的---不是自杀程序,是他杀程序
2012-02-11 20:36
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
問問題那個不是你呀

授人以渔,不授人以鱼。
2012-02-11 20:36
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
以下是引用TonyDeng在2012-2-11 20:36:46的发言:

問問題那個不是你呀
还是把你的原代码删了吧,这段代码用在注册软件中的作用可是很大啊,特别是对注册软件,规定时间到了,可以用这段代码,进行程序自毁。

坚守VFP最后的阵地
2012-02-11 20:42
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
呵呵,這種刪除整個子目錄的命令,是很危險的,因為帶/S參數是把其下所有子目錄一概刪除,所以無論是DOS,還是我的程序中,都要設計一個詢問確認的過程,否則,那是無法挽回的。

我之所以最終選擇這個方案,是因為在寫遍歷刪除時,如果目錄中存在隱藏、只讀、系統屬性的文件,用delete是無法刪掉的,那樣,其子目錄也同樣刪不掉,要麼用DOS的attrib修改屬性然後刪掉,要麼用API函數修改屬性,無論哪一種,都是要使用操作系統,與其如此,不如直接使用rd算了。

授人以渔,不授人以鱼。
2012-02-11 20:43
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 54楼 sdta
刪掉我的源碼沒用的,別人也能想到。要自毀,還有別的辦法。這種刪除法,難保人家不會做備份,一刪就知道你搞手腳了,反而暴露。

授人以渔,不授人以鱼。
2012-02-11 20:46
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
提示信息不显示,直接删除了

坚守VFP最后的阵地
2012-02-11 20:48
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:682
专家分:1299
注 册:2009-3-1
收藏
得分:0 
以下是引用TonyDeng在2012-2-11 19:52:10的发言:

 
SET DEFAULT TO "c:\My Documents\Visual FoxPro Projects\test"
CLEAR ALL
CLEAR
DelDir("aaa", .F.)
CLEAR ALL
RETURN  
 
*---------------------
* 參數:tcDir -- 當前默認路徑下的文件夾名,也可以用絕對路徑
*       tlQuestion -- 是否需要確認,默認為要
*---------------------
PROCEDURE DelDir(tcDir, tlQuestion)
   
    IF (PCOUNT() < 2) .OR. (VARTYPE(tlQuestion) != "L")
        tlQuestion = .T.
    ENDIF
   
    IF tlQuestion .AND. (MESSAGEBOX("您确认删除文件夹" + tcDir + "中的一切内容吗?", 32 + 4 + 256) != 6)
        RETURN
    ENDIF
   
    STRTOFILE("RD &tcDir /S /Q", "DELDIR.BAT")
    RUN /N7 DELDIR.BAT
   
ENDPROC
测试了一下,没提示的。效果很好
2012-02-11 20:50
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:682
专家分:1299
注 册:2009-3-1
收藏
得分:0 
以下是引用sdta在2012-2-11 20:33:23的发言:

一切都在酒中


[ 本帖最后由 sdta 于 2012-2-11 20:45 编辑 ]
TO:SDTA 咋的,把你自己的发言都改了?????????????????????????????????

[ 本帖最后由 xs591222 于 2012-2-11 20:56 编辑 ]
2012-02-11 20:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
有個小缺陷,不能馬上刪掉DELDIR.BAT文件,要過一段時間,確認刪除操作做完了,才能刪掉它。你們測試一下怎麼做吧。
還有,注意那個宏代換,在長文件名帶空格之類的情況下會不會有錯,有錯要想辦法修補命令的寫法。

[ 本帖最后由 TonyDeng 于 2012-2-11 20:59 编辑 ]

授人以渔,不授人以鱼。
2012-02-11 20:55
快速回复:VFP中非空文件夹的删除
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017096 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved