标题:vfp如何删除文件并清空回收站
只看楼主
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
结帖率:100%
已结贴  问题点数:20 回复次数:9 
vfp如何删除文件并清空回收站
用如下代码删除文件名文件夹后,都进回收站了,请问如何直接删除,不进回收站呢?

程序代码:
***删除文件夹
**调用格式deldirapiover('d:\tmp')
PARAMETERS cPath
cPath=ALLTRIM(cPath)
cPath=LEFT(cPath,LEN(cPath)-IIF(RIGHT(cPath,1)=='\',1,0))
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@
** 删除文件,包括删除整个文件夹。
LOCAL hHeap, pFileName, stFileOp, bRet
cFileName = cPath + 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)
CLEAR DLLS
RETURN bRet

搜索更多相关主题的帖子: vfp 删除 文件 LONG Kernel32 
2018-09-01 18:18
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
网上查到的资料:回收站是Shell的东西,要用Shell操作

一:gpedit.msc:设置直接删除文件
进入开始菜单,选择“运行...”,输入“gpedit.msc”;
在弹出的对话框中,选择用户设置,管理模板,Windows 组件,Windows Explorer,找到“不要将删除的文件移送到回收站”的选项。开启这个选项。
二:“回收站”,“属性”,“删除时不将文件移入回收站而是彻底删除”
三:shift+del
四:“回收站”“属性”“全局”标签,把表示回收站的容量的滑块拖到最左侧,变为“0”时。

[此贴子已经被作者于2018-9-1 19:24编辑过]


坚守VFP最后的阵地
2018-09-01 18:51
红星二锅头
Rank: 8Rank: 8
等 级:贵宾
威 望:46
帖 子:491
专家分:754
注 册:2016-8-25
得分:5 
#Define SHERB_NOCONFIRMATION = 0x00000001
#Define SHERB_NOPROGRESSUI   = 0x00000002
#Define SHERB_NOSOUND        = 0x00000004
Declare Integer SHEmptyRecycleBin In shell32 ;
    INTEGER HWnd,;
    STRING  pszRootPath,;
    LONG    dwFlags

=SHEmptyRecycleBin(0, Null, 0x00000002)  && OK

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2018-09-01 19:22
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:0 
@hyswcyh,红星二锅头,可以达到要求,但要出现确认对话框的。
2018-09-01 21:30
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:15 
以下是引用hyswcyh在2018-9-1 18:18:19的发言:

    stFileOp = REPLICATE(0h00, 4) + BINTOC(3, "4RS") + BINTOC(pFileName, "4RS") + REPLICATE(0h00, 4) + BINTOC(80, "2RS") + REPLICATE(0h00, 12)

试试将其中的 BINTOC(80, "2RS") 改为 BINTOC(0x90, "2RS")
2018-09-01 21:43
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
得分:0 
谢谢!明天测试一下!
2018-09-01 22:34
红星二锅头
Rank: 8Rank: 8
等 级:贵宾
威 望:46
帖 子:491
专家分:754
注 册:2016-8-25
得分:0 
=SHEmptyRecycleBin(0, Null, 0x00000002)  && OK

0x00000002 :  有提示
0x00000001 :  无提示

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2018-09-02 07:43
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:0 
回复 7楼 红星二锅头
谢谢,完全正确!

[此贴子已经被作者于2018-9-2 08:12编辑过]

2018-09-02 08:05
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:0 
回复 5楼 吹水佬
谢谢!改过后,完全正确!

[此贴子已经被作者于2018-9-2 08:12编辑过]

2018-09-02 08:06
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
得分:0 
经测试,5楼正解,完美解决我的问题!谢谢!

3楼也可解决问题,但是步骤多了一点,不过给出了完善解决方案!谢谢!

完美结帐!
2018-09-02 08:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-489573-1-1.html




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

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