| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 797 人关注过本帖
标题:如何直接删除文件夹和文件夹下的所有文件,而不用询问是否同意的方法
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏(1)
得分:3 
删除一个或数个文件。

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributes]] names

  names         指定一个或多个文件或者目录列表。
                通配符可用来删除多个文件。
                如果指定了一个目录,该目录中的所
                有文件都会被删除。

  /P            删除每一个文件之前提示确认。
  /F            强制删除只读文件。
  /S            删除所有子目录中的指定的文件。
  /Q            安静模式。删除全局通配符时,不要求确认
  /A            根据属性选择要删除的文件
  属性          R  只读文件                     S  系统文件
                H  隐藏文件                     A  存档文件
                I  无内容索引文件               L  重分析点
                -  表示“否”的前缀

如果命令扩展被启用,DEL 和 ERASE 更改如下:

/S 开关的显示句法会颠倒,即只显示已经
删除的文件,而不显示找不到的文件。

授人以渔,不授人以鱼。
2015-11-24 10:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
樓主用的是run外部指令刪除文件,參看11樓語法。如何調用run,應該會的。

授人以渔,不授人以鱼。
2015-11-24 10:45
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:3 
API SHFileOperation()示例
有兴趣可以探讨一下SHFILEOPSTRUCT结构,有好多对文件的处理功能。
程序代码:
DECLARE LONG GetProcessHeap  IN Kernel32
DECLARE LONG HeapAlloc       IN Kernel32 LONG, LONG, LONG
DECLARE LONG HeapFree        IN Kernel32 LONG, LONG, LONG
DECLARE LONG HeapDestroy     IN Kernel32 LONG
DECLARE LONG SHFileOperation IN Shell32 STRING@

? myDelFile("C:\TEMP\TEMP1")

CLEAR ALL


** 删除文件,包括删除整个文件夹。
FUNCTION myDelFile(cFileName)
    LOCAL hHeap, pFileName, stFileOp, bRet
    cFileName = cFileName + 0h0000
    bRet = .T.
    TRY 
        hHeap = GetProcessHeap()
        pFileName = HeapAlloc(hHeap, 8, LEN(cFileName))
        SYS(2600, pFileName, LEN(cFileName), cFileName)
        stFileOp = REPLICATE(0h00, 4);
                 + BINTOC(3, "4RS");
                 + BINTOC(pFileName, "4RS");
                 + REPLICATE(0h00, 4);
                 + BINTOC(80, "2RS");
                 + REPLICATE(0h00, 12)
        bRet = (SHFileOperation(@stFileOp) == 0)
    CATCH
        bRet = .F.
    ENDTRY
    HeapFree(hHeap, 1, pFileName)
    HeapDestroy(hHeap)
**        IF !bRet
**            MESSAGEBOX("删除文件失败!" + 0h0D + cFileName, "提示")
**        ENDIF
    RETURN bRet
ENDFUNC


[此贴子已经被作者于2015-11-24 15:01编辑过]

2015-11-24 14:59
cxzbzgz
Rank: 8Rank: 8
来 自:云南楚雄
等 级:贵宾
威 望:24
帖 子:298
专家分:808
注 册:2012-6-15
收藏
得分:3 
SET TALK OFF
SET SAFETY OFF
以上两条命令同时使用

学习交流VFP,QQ:248561326。
2015-11-25 17:33
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:682
专家分:1299
注 册:2009-3-1
收藏
得分:3 
留个印记,好学习。谢谢!
2015-11-25 18:15
快速回复:如何直接删除文件夹和文件夹下的所有文件,而不用询问是否同意的方法
数据加载中...
 
   



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

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