删除回收站下面的所有文件,出现不明白的问题。大牛请来赐教!!
我获取回收站下面的所有文件,但是获取出来的文件有些问题。名称不一样,不明白是为什么。。。
有大牛愿意来解释下吗?
如图一(获取文件显示在控件上面的列表和文件名称):
如图二(为回收站文件本应的名称)
--------------------------------------------
代码如下:
C# code
if (treeView1.Nodes.Count > 0)
treeView1.Nodes.Clear();
treeView1.CheckBoxes = true;
treeView1.Nodes.Add("0", "回收站");
string MyPath = @"C:\Recycled";
string[] Dirs = null;
string[] Files = null;
Files = Directory.GetFiles(MyPath);
if (Files != null)
{
foreach (string file in Files)
{
string tmp = file.Substring(file.LastIndexOf(@"\") + 1);
TreeNode SubNode = new TreeNode(file);
treeView1.Nodes[0].Nodes.Add(SubNode);
}
}
------解决方案--------------------回收站下的文件全部被重命名了,如果要看原来的文件名,有点难度,看微软能提供什么样的接口了。
------解决方案--------------------
由于Windows在把文件移至回收站时把文件名给改了,所以还需要找回原来的文件名。原来的文件名可以从RECYCLED目录下的INFO2文件中找。INFO2是一个二进制文件,每一个被删除的文件在INFO2文件中有一段记录(800字节),其中可以找到文件名,其他的信息都不是ASCII字符,我们也不用关心。而且文件名按顺序排列,第一个文件名就是DC1.*文件原来的文件名,后缀名保持不变。如果被删除的是目录,在RECYCLED下就有一个叫DC????的目录,用同样的方法可以找回原来的目录名。