WPF文件选择
1.选择文件的后台代码:
在wpf框架中使用文件框选择文件比较容易实现,可以直接使用Microsoft.Win32.OpenFIleDialog类,后台代码如下:
// 实例化一个文件选择对象
Microsoft.Win32.OpenFileDialog dialog = new Microsoft.Win32.OpenFileDialog();
dialog.DefaultExt = ".png"; // 设置默认类型
// 设置可选格式
dialog.Filter = @"图像文件(*.jpg,*.png,*.tif,*.gif)|*jpeg;*.jpg;*.png;*.tif;*.tiff;*.gif
|JPEG(*.jpeg, *.jpg)|*.jpeg;*.jpg|PNG(*.png)|*.png|GIF(*.gif)|*.gif
|TIF(*.tif,*.tiff)|*.tif;*.tiff";
// 打开选择框选择
Nullable<bool> result = dialog.ShowDialog();
if(result == true) {
string file = dialog.FileName; // 获取选择的文件名
}
DefaultExt 属性设置的是文件选择的默认类型;Filter属性设置的是文件对话框中的可选文件类型(要注意写法);ShowDialog()方法是弹出文件对话框,该方法返回一个布尔值,成功选择文件就返回true,否则返回false;FileName属性的值为对话框选择的文件绝对路径名。
2.选择文件夹
在Winform中使用System.Windows.Forms.OpenFileDialog类选择文件,System.Windows.Forms.FolderBrowserDialog类选择文件夹。而在WPF中,使用Microsoft.Win32.OpenFileDialog只能选择文件,FolderBrowserDialog只能用树型的方式选择文件夹,很不好用;我们可以通过添加winform的引用,在wpf中引用winfom,using System.Windows.Forms; 但是我更喜欢另外一个工具:Windows API Code Pack
第一步:打开VS的程序包管理器控制台
第二步:输入Install-Package WindowsAPICodePack-Shell获取包
> Install-Package WindowsAPICodePack-Shell
第三步:后台代码
using Microsoft.WindowsAPICodePack.Dialogs;
...
...{
// 实例化一个文件夹选择对象
CommonOpenFileDialog dialog = new CommonOpenFileDialog();
dialog.IsFolderPicker = true; // 只选择文件夹(false时只选择文件)
CommonFileDialogResult result = dialog.ShowDialog(); // 打开选择框
if(CommonFileDialogResult.Ok == result) {
var files = Directory.GetFiles(dialog.FileName, "*.*", SearchOption.AllDirectories).Where(
s => s.EndsWith(".jpg") || s.EndsWith(".jpeg") || s.EndsWith(".png") ||
s.EndsWith(".tif") || s.EndsWith(".tiff") || s.EndsWith(".gif") ||
s.EndsWith(".bmp"));
}
dialog.FileName为选择的文件夹名,Directory.GetFiles获取的是符合条件的文件(注意写法)