 <p>How to use ShellExecuteEx to undelete a file in the Recycling Bin given its parsing name:</p> <pre><code> ' some file we got from the recycle bin iterating through the IShellItems: Dim sParsing As String = _ "E:\$RECYCLE.BIN\S-1-5-21-2546332361-822210090-45395533-1001\$RTD2G1Z.PNG" Dim shex As New SHELLEXECUTEINFO shex.cbSize = Marshal.SizeOf(shex) ' Here we want ONLY the file name. shex.lpFile = Path.GetFileName(sParsing) ' Here we want the exact directory from the parsing name shex.lpDirectory = Path.GetDirectoryName(sParsing) shex.nShow = SW_SHOW ' = 5 '' here the verb is undelete, not restore. shex.lpVerb = "undelete" ShellExecuteEx(shex) </code></pre>