Your requirements are still not clear but I would like to take a stab at what I think you mean.
You know how to add and remove images from your picturebox, right? So you have no problems there.
I assume you load your picture box by iterating through all of the files in a specified directory and either directly (press a button and display the next/previous image) or indirectly (having loaded a list box with image names/filespecs) display the appropriate image.
Since you can 'save' an Image object to disk you are hoping there is a way to tell the Image object to go find its instance on the hard drive and remove it.
It can't be done (that way). An Image is a object in memory. It may or may not have a serialized/physical version on the hard drive so it would violate object-orientated concepts for an Image object to 'handle' Stream activities. The file is a physical object on the hard drive. To delete it you must go find it on the hard drive:
// Get the files from the directory
System.IO.FileInfo files = dirInfo.GetFiles("*.jpg");
// Add each file name and full name including path
// to the ListView.
if (files != null)
foreach ( System.IO.FileInfo file in files )
if (file.Name == sNameOfFileToDelete)
// You found it so delete it ...
// ... and you are done so
// jump out of the for...each loop