我想要一个使用 c# 代码检索回收站(在 win 7 上)中的文件名的函数。该框架似乎没有包含任何内容来实现这一目标。
目录.Getfiles()不会起作用,是吗?
我发现自己有一个使用“windows shell32自动化”的代码,但这需要提供interop.shell32.dll,它必须与我的应用程序一起重新分发。由于我的应用程序应该独立工作(只要用户计算机上存在 Net Framework 2),因此该解决方案并不理想。
这个解决方案对我来说似乎也不可靠,因为它使用 COM 自动化,并且某些引用可能会失败或调用 Namespace(10) 可能会失败。我什至不确定命名空间(10)是否始终是回收站的正确文件夹。
这段代码就是我在 C# 中找到的关于这个问题的所有代码。
我在代码项目中找到了一个 Delphi 和另一个实现,但是如果我在 C# 项目中复制该代码,它实际上全是红色下划线,并且无法编译。我不确定如何更正此代码以使其能够在 C# 中使用。在 pinvoke.net 上,我没有找到我必须使用的 Windows 函数的代码(SHQueryRecycleBin),但也许我必须使用更多函数来从回收站获取文件列表。
有人看过代码或有任何想法吗?
如果添加参考C:\Windows\System32\Shell32.dll
在您的应用程序中,您可以轻松访问回收站中文件的文件名
Example:
using Shell32;
public IEnumerable<string> GetRecycleBinFilenames()
{
Shell shell = new Shell();
Folder recycleBin = shell.NameSpace(10);
foreach (FolderItem2 recfile in recycleBin.Items())
{
// Filename
yield return recfile.Name;
// full recyclepath
// yield return recfile.Path;
}
Marshal.FinalReleaseComObject(shell);
}
如果创建的额外文件让您烦恼,您可以将其嵌入到可执行文件中
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)