WPF图片浏览器之删除图像功能

手册/FAQ (536) 2016-04-23 09:52:06

 

   用WPF做了一个图片查看器。初始化程序后,通过一个Listbox 将指定文件夹的Image加入界面上,并可以对加载的图片进行一系列的操作。比如删除操作。

    之前在文章中讲过,如何解决Image控件的BitmapImage资源占用问题。解决了该问题,就可以对加载到界面上的图像进行删除操作。

    C#自带的删除操作为:

    File.Delete方法, 命名空间为System.IO    函数原型如下:

public static void Delete(string path), 其中path为要删除的文件的名称。

所以可以使用:

File.Delete("D:\\123.PNG"); //  删除D盘中的名为123的图片

 

但是问题来了,我们进入电脑回收站并未找到名为123.png的图片,说明 File.Delete方法将指定路径的文件彻底删除了,即shift+delete操作

如果我们需要重新使用被删除的文件呢,这就需要设法把文件删除到回收站。

 

但是C#中没有这样的函数,但是VB中有这样的函数,故可以通过借助VB中的函数,将文件删除到回收站。

 首先,对项目添加名为Microsoft.VisualBasic.dll的引用

 其次,添加命名空间, using Microsoft.VisualBasic.FileIO

这样就可以使用VB中的 FileSystem.DeleteFile方法:

DeleteFile的重载列表如下:

DeleteFile(String)

DeleteFile(String, UIOption, RecycleOption)

DeleteFile(String, UIOption, RecycleOption, UICancelOption)

 

因此我们可以通过设置RecycleOption 来确定删除的文件是否发送到“回收站”, 

RecycleOption 枚举如下:

public enum RecycleOption  成员DeletePermanently 表示永久删除 ;成员SendToRecycleBin表示送至“回收站”;

 

因此代码如下:

FileSystem.DeleteFile("D:\\123.png", UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin);

将D盘的123.png图像删除到回收站。

THE END