WPF文件选择

WPF文件选择

    • 1.选择文件的后台代码:
    • 2.选择文件夹

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的程序包管理器控制台
WPF文件选择_第1张图片

第二步:输入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获取的是符合条件的文件(注意写法)

你可能感兴趣的:(C#)