有没有删除回收站内某个文件的函数?(注意:不是删除到回收站,也不是清空)

ltolll 2009-11-28 04:22:23
GOOGLE了,也百度了,还到codeproject了。没找到这样的函数,只有删除文件到回收站的和清空回收站的。
回收站文件夹里的文件应该是配合某个文件来使用的,不能直接删除。
按理说,微软不会不提供这种函数的。
请知情人指点。
...全文
143 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wclhack 2009-12-30
  • 打赏
  • 举报
回复
参考http://blog.csdn.net/RFEZGC/archive/2009/11/22/4852948.aspx

用API来写的
RFEZGC 2009-12-30
  • 打赏
  • 举报
回复
按lz的说法来实现的话,需要算法才行吧。

先到每个磁盘下的 RecycleBin 目录,找到你想要删除的文件 ,然后delete
ltolll 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 erydemimi 的回复:]
为什么不直接删除 不进回收站呢?
[/Quote]
因为我们单位里有很多人不会用回收站,里面常常是一年前删除的东西还在.我又不可能总去帮他们手工删除回收站里的文件,所以要做个程序出来帮他们.
yankunlin 2009-12-25
  • 打赏
  • 举报
回复
gz
erydemimi 2009-12-25
  • 打赏
  • 举报
回复
为什么不直接删除 不进回收站呢?
RFEZGC 2009-12-24
  • 打赏
  • 举报
回复
ltolll 2009-12-24
  • 打赏
  • 举报
回复
FIV.DoIt(); // 会弹出是否真的彻底删除文件的对话框
如何让确认框不出现?
wartim 2009-12-17
  • 打赏
  • 举报
回复
还有,COM用完要释放

System.Runtime.InteropServices.Marshal.FinalReleaseComObject(S);
wartim 2009-12-17
  • 打赏
  • 举报
回复

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Shell32; // 添加引用->COM->Microsoft Shell Controls And Automation

namespace WindowsApplication229
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();

Shell S = new Shell();
int CSIDL_BITBUCKET = 0xA;

Folder F = S.NameSpace(CSIDL_BITBUCKET);
foreach (FolderItem FI in F.Items())
{
String PathName = F.GetDetailsOf(FI, 1) + "\\" + F.GetDetailsOf(FI, 0);

if (PathName == @"C:\DOCUME~1\ADMINI~1.251\LOCALS~1\Temp\vs32.tmp")
{
foreach (FolderItemVerb FIV in FI.Verbs())
if (FIV.Name == "删除(&D)")
{
FIV.DoIt(); // 会弹出是否真的彻底删除文件的对话框
break;
}
break;
}
}
}
}
}
足球中国 2009-12-17
  • 打赏
  • 举报
回复
你是不是想把文件直接删除不经过回收站。那样很简单,,之前做过,你可以搜下,代码一大堆。




___________________________________
我写的vs2005源代码管理器,只有团队资源管理中源码管理的功能。
http://topic.csdn.net/u/20091203/10/ca40b678-5443-4a18-a9f6-fad9051d0797.html
ltolll 2009-12-17
  • 打赏
  • 举报
回复
问题的焦点在于,取不到回收站内文件的实际路径。
wartim 2009-12-17
  • 打赏
  • 举报
回复
csdn的结贴率还有待提高
vrhero 2009-11-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ltolll 的回复:]
引用 1 楼 sohighthesky 的回复:
回收站也是个文件夹,你访问它,直接删除就ok了

你确定这样做过?我怕这样做可能损坏回收站。
[/Quote]
回收站只是逻辑存在的,注册表中的一些项而已...你把磁盘上的回收站文件夹整个删除了都不会损坏回收站...

但要注意地是,文件、文件夹一旦进入回收站它们的文件名都会改变,还会生成对应的恢复信息...另外,不同版本的Windows可能有不能的处理机制...

你需要深入了解回收站的机制,弄清楚怎么找那些文件和该删除那些信息...这种需求从没有过,我觉得也没什么实用价值...所以我猜也没什么人研究过...
threenewbee 2009-11-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ltolll 的回复:]
引用 1 楼 sohighthesky 的回复:
回收站也是个文件夹,你访问它,直接删除就ok了

你确定这样做过?我怕这样做可能损坏回收站。
[/Quote]
不会。
ltolll 2009-11-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sohighthesky 的回复:]
回收站也是个文件夹,你访问它,直接删除就ok了
[/Quote]
你确定这样做过?我怕这样做可能损坏回收站。
threenewbee 2009-11-28
  • 打赏
  • 举报
回复
以前看过如何从回收站里面提取文件的介绍。

我想方法差不多,找到回收站里面的文件(名字被更改了),然后删除掉就可以了。回收站就是一个文件夹。
sohighthesky 2009-11-28
  • 打赏
  • 举报
回复
回收站也是个文件夹,你访问它,直接删除就ok了

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧