程序解决scheme当然…
屏幕保护程序仍然必须安装到System32?
什么USB设备(友好名称)当前连接到PC?
使用C#编程检测Windowslogin尝试
如何知道窗口zorder更改的时间
如何在PowerShell中使用HTML Tidy .NET DLL封装器?
http://www.daveamenta.com/2008-05/c-delete-a-file-to-the-recycle-bin/
从上面:
using Microsoft.VisualBasic; string path = @"c:myfile.txt"; FileIO.FileSystem.DeleteDirectory(path,FileIO.UIOption.OnlyErrorDialogs,RecycleOption.SendToRecycleBin);
您需要深入研究非托管代码。 这是我一直在使用的静态类:
public static class Recycle { private const int FO_DELETE = 3; private const int FOF_ALLOWUNDO = 0x40; private const int FOF_NOCONFIRMATION = 0x0010; [StructLayout(LayoutKind.Sequential,CharSet = CharSet.Auto,Pack = 1)] public struct SHFILEOPSTRUCT { public IntPtr hwnd; [MarshalAs(UnmanagedType.U4)] public int wFunc; public string pFrom; public string pTo; public short fFlags; [MarshalAs(UnmanagedType.Bool)] public bool fAnyOperationsAborted; public IntPtr hNameMappings; public string lpszProgresstitle; } [DllImport("shell32.dll",CharSet = CharSet.Auto)] static extern int SHFileOperation(ref SHFILEOPSTRUCT FileOp); public static void DeleteFileOperation(string filePath) { SHFILEOPSTRUCT fileop = new SHFILEOPSTRUCT(); fileop.wFunc = FO_DELETE; fileop.pFrom = filePath + ' ' + ' '; fileop.fFlags = FOF_ALLOWUNDO | FOF_NOCONFIRMATION; SHFileOperation(ref fileop); } }
附录:
Tsk tsk @ Jeff在C#代码中使用“Microsoft.VisualBasic”。
Tsk tsk @ MS将所有的好东西放在VisualBasic命名空间中。
我发现的最好的方法是使用VB函数FileSystem.DeleteFile 。
Microsoft.VisualBasic.FileIO.FileSystem.DeleteFile(file.FullName,Microsoft.VisualBasic.FileIO.UIOption.OnlyErrorDialogs,Microsoft.VisualBasic.FileIO.RecycleOption.SendToRecycleBin);
它需要添加Microsoft.VisualBasic作为参考,但这是.NET框架的一部分,因此不是额外的依赖项。
替代解决方案需要一个P / Invoke SHFileOperation ,以及定义所有的各种结构/常量。 包括Microsoft.VisualBasic比较整齐得多。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。