【发布时间】:2019-10-25 00:06:47
【问题描述】:
我正在做作业以使用 shell32.dll 获取回收站的文件数。但是,当我尝试使用 shell 时,我很难显示回收站中的文件列表并不断收到System.InvalidCastException 错误。
我在Stack Overflow上浏览过不少解决方案,大部分都是使用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();
}
【问题讨论】:
-
请告诉我们确切的错误以及它发生在哪一行。并告诉我们您正在测试哪个版本的 Windows,以及哪个版本的 .NET Framework。 this answer 似乎至少在 Windows 7 上有效,并且与您的略有不同。你也试过那个吗?
-
Windows 版本很重要,您需要通过在 Main() 方法中添加 [STAThread] 属性来增加它在每个版本上运行良好的几率。
标签: c# .net com recycle-bin shell32