gpt4 book ai didi

c# - 如何在 WPF 中访问用户回收站中的所有文件/目录?

转载 作者:行者123 更新时间:2023-11-30 15:59:02 25 4
gpt4 key购买 nike


注意:明确地说,我不想像其他问题中回答的那样清空回收站。


使用 Stack Overflow 和 Super User 上其他问题的答案,我发现在 C# 中获取回收站位置的方法是:

@"C:\$Recycle.Bin\"+ System.Security.Principal.WindowsIdentity.GetCurrent().User.ToString()

但是,当我运行以下代码时,我得到的文件与回收站中的实际文件不同:

string location = @"C:\$Recycle.Bin\" + System.Security.Principal.WindowsIdentity.GetCurrent().User.ToString();
foreach (string file in Directory.GetFiles(location))
{
Console.Writeline(file);
}

如何正确获取回收站中的所有文件?我的需要是访问上次使用文件的时间,然后可能会恢复它们。

谢谢。

最佳答案

It's not as straight forward as initially thought because the Recycle Bin doesn't have a physical location, it's a virtual folder. To get a list of all files in the Recycle Bin and make this work you need to add a reference to shell32.dll (located in %SystemRoot%\system32\shell32.dll).

public static void Main(string[] args)
{
Shell shell = new Shell();
Folder folder = shell.NameSpace(0x000a);

foreach (FolderItem2 item in folder.Items())
Console.WriteLine("FileName:{0}", item.Name);

Marshal.FinalReleaseComObject(shell);
Console.ReadLine();
}

编号:http://www.dreamincode.net/forums/topic/161500-play-with-recycle-bin-in-code/

要获取文件的 LastModified 属性,您可以在此处查看我的回答: https://stackoverflow.com/a/11660616/

另请注意,每个 HDD 都有一个回收站,因此您必须检查所有驱动器。

这里恢复文件是C#中的解决方案:https://stackoverflow.com/a/6025331/495455

关于c# - 如何在 WPF 中访问用户回收站中的所有文件/目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42334738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com