digitalmars.D.learn - sending a file to the Recycle Bin or Trashcan
- jicman (4/4) Jan 30 2008 Greetings!
- Regan Heath (50/55) Jan 30 2008 I googled this VB example, you can usually convert VB to C/C++ fairly
- Regan Heath (17/17) Jan 30 2008 Add these to my last post:
- jicman (3/26) Jan 30 2008 Thanks Regan.
Greetings! Is there a way to send a file to the recycle bin or trashcan in Windows? I know I can delete it using std.file, but how can I send it to the recycle bin? thanks, josé
Jan 30 2008
jicman wrote:Greetings! Is there a way to send a file to the recycle bin or trashcan in Windows? I know I can delete it using std.file, but how can I send it to the recycle bin?I googled this VB example, you can usually convert VB to C/C++ fairly easily: http://www.cpearson.com/excel/recycle.aspx Search MSDN for SHFileOperation. It's declared in shellapi.h and you'll need to link your D code with shell32.lib or shell32.dll. eg --[recycle.d]-- import std.c.windows.windows; extern(Windows) { alias WORD FILEOP_FLAGS; struct SHFILEOPSTRUCTA { HWND hwnd; UINT wFunc; LPCSTR pFrom; LPCSTR pTo; FILEOP_FLAGS fFlags; BOOL fAnyOperationsAborted; LPVOID hNameMappings; LPCSTR lpszProgressTitle; // only used if FOF_SIMPLEPROGRESS } alias SHFILEOPSTRUCTA* LPSHFILEOPSTRUCTA; struct SHFILEOPSTRUCTW { HWND hwnd; UINT wFunc; LPCWSTR pFrom; LPCWSTR pTo; FILEOP_FLAGS fFlags; BOOL fAnyOperationsAborted; LPVOID hNameMappings; LPCWSTR lpszProgressTitle; // only used if FOF_SIMPLEPROGRESS } alias SHFILEOPSTRUCTW* LPSHFILEOPSTRUCTW; int SHFileOperationA(LPSHFILEOPSTRUCTA lpFileOp); int SHFileOperationW(LPSHFILEOPSTRUCTW lpFileOp); } void main() { SHFILEOPSTRUCTA op; // set op members SHFileOperationA(&op); } To compile: dmd recycle.d shell32.lib Regan
Jan 30 2008
Add these to my last post: UINT FO_DELETE = 0x0003; UINT FOF_ALLOWUNDO = 0x0040; UINT FOF_NOCONFIRMATION = 0x0010; and use this main: void main() { SHFILEOPSTRUCTA op; op.wFunc = FO_DELETE; op.pFrom = toStringz("C:\\test.txt"); op.fFlags = FOF_ALLOWUNDO; op.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION; writefln(SHFileOperationA(&op)); } and it puts "C:\\test.txt" in my receycle bin :) R
Jan 30 2008
Regan Heath Wrote:Add these to my last post: UINT FO_DELETE = 0x0003; UINT FOF_ALLOWUNDO = 0x0040; UINT FOF_NOCONFIRMATION = 0x0010; and use this main: void main() { SHFILEOPSTRUCTA op; op.wFunc = FO_DELETE; op.pFrom = toStringz("C:\\test.txt"); op.fFlags = FOF_ALLOWUNDO; op.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION; writefln(SHFileOperationA(&op)); } and it puts "C:\\test.txt" in my receycle bin :) RThanks Regan. josé
Jan 30 2008