- usingSystem.Runtime.InteropServices;
- privateconstintFO_DELETE=0x3;
- privateconstushortFOF_NOCONFIRMATION=0x10;
- privateconstushortFOF_ALLOWUNDO=0x40;
- [DllImport("shell32.dll")]
- privatestaticexternintSHFileOperation([In,Out]_SHFILEOPSTRUCTstr);
- [StructLayout(LayoutKind.Sequential,CharSet=CharSet.Unicode)]
- publicclass_SHFILEOPSTRUCT
- {
- publicIntPtrhwnd;
- publicUInt32wFunc;
- publicstringpFrom;
- publicstringpTo;
- publicUInt16fFlags;
- publicInt32fAnyOperationsAborted;
- publicIntPtrhNameMappings;
- publicstringlpszProgressTitle;
- }
- publicstaticintDeleteToRecycleBin(stringpath)
- {
- _SHFILEOPSTRUCTpm=new_SHFILEOPSTRUCT();
- pm.wFunc=FO_DELETE;
- pm.pFrom=path+'/0';
- pm.pTo=null;
- pm.fFlags=FOF_ALLOWUNDO|FOF_NOCONFIRMATION;
- returnSHFileOperation(pm);
- }
- privatevoidbutton1_Click(objectsender,EventArgse)
- {
- DeleteToRecycleBin(@"c:/temp/temp.txt");
- }
所以先找了一个API的方式。
后来在我记忆里有一个Microsoft.VisualBasic的方法,能更方便地实现 SHFileOperation()的调用。
还能显示出确认对话框:
- privatevoidbutton1_Click(objectsender,EventArgse)
- {
- //-----------
- //项目中添加Microsoft.VisualBasic引用
- Microsoft.VisualBasic.FileIO.FileSystem.DeleteFile(@"d:/temp/temp.txt",
- Microsoft.VisualBasic.FileIO.UIOption.AllDialogs,
- Microsoft.VisualBasic.FileIO.RecycleOption.SendToRecycleBin,
- Microsoft.VisualBasic.FileIO.UICancelOption.DoNothing);
- }
- Microsoft.VisualBasic.Strings.Format();
- Microsoft.VisualBasic.Interaction.IIf();
- //-----------
- //项目中添加Microsoft.VisualBasic引用
- //usingMicrosoft.VisualBasic.Devices;
- Computercomputer=newComputer();
- Console.WriteLine("AvailablePhysicalMemory:{0}M",
- computer.Info.AvailablePhysicalMemory/(1024*1024));
- Console.WriteLine("AvailableVirtualMemory:{0}M",
- computer.Info.AvailableVirtualMemory/(1024*1024));
在.NET环境下,能不用API就不用API。