C# WPF上位机开发(文件对话框和目录对话框)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

一个上位机软件在处理数据的时候,除了配置文件、数据文件之外,一般还需要使用选择对话框进行文件和目录的选取。如果不这样做,那么就需要先关闭软件,修改配置文件后再重新打开,这样就不是很方便。不过c# wpf本身已经提供了文件对话框、目录对话框的方案,大家只要学会使用就可以了。

1、文件对话框

使用文件对话框之前,需要需要引用Win32命名空间,

using Microsoft.Win32;

引入了命名空间之后,我们就可以接着通过OpenFileDialog这个结构体来进行文件的选择操作。使用之前,一般还需要对OpenFileDialog进行属性设置,比如标题,需要过滤哪些文件。等设置好之后,直接调用它的ShowDialog函数就可以显示出来了。结束之后,如果需要显示相关文件的路径或者名称,那么获取seletedFilePath这个属性就可以了,

            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Title = "选择文件";
            openFileDialog.Filter = "文本文件|*.txt|所有文件|*.*";

            if (openFileDialog.ShowDialog() == true)
            {
                string selectedFilePath = openFileDialog.FileName;        
                MessageBox.Show($"选择的文件路径: {selectedFilePath}", "文件已选择");
            }

编译后,运行的效果是这样的,

2、目录对话框

和文件对话框相对应的就是目录对话框,很多时候软件操作的不仅是一个文件,而是需要选择一个目录。假设来说,我们需要对一个目录下面的所有文件进行一个批处理的操作,比如这个文件可能是文档doc,又或者是图片bmp等等。再比如,一个项目可能本身就包含了很多的文件类型,那么这个时候加载工程的时候,也只需要加载对应的目录就可以了,而不是一个文件一个文件单独去加载,毕竟这样会琐碎、繁杂很多。

要使用目录对话框,首先需要添加对应的命名空间,

using System.Windows.Forms;

选择好了命名空间,接下来就是编写对应的代码。目前,目录对话框用到的结构体是FolderBrowserDialog。同样,使用之前,也需要设置它的一些基本属性,比如说标题。接着等对话框显示并且操作结束以后,就可以通过selectedFolderPath找到对应目录的地址了。

            using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog())
            {
                folderBrowserDialog.Description = "选择文件夹";
                DialogResult result = folderBrowserDialog.ShowDialog();

                if (result == System.Windows.Forms.DialogResult.OK && !string.IsNullOrWhiteSpace(folderBrowserDialog.SelectedPath))
                {
                    string selectedFolderPath = folderBrowserDialog.SelectedPath;
                    
                    System.Windows.MessageBox.Show($"选择的文件夹路径: {selectedFolderPath}", "文件夹已选择");
                }
            }

编译运行之后,它的效果是这样的,

相关推荐
YMWM_5 分钟前
第一章 Go语言简介
开发语言·后端·golang
只因在人海中多看了你一眼6 分钟前
python语言基础
开发语言·python
2401_858286118 分钟前
101.【C语言】数据结构之二叉树的堆实现(顺序结构) 下
c语言·开发语言·数据结构·算法·
y25089 分钟前
《Object类》
java·开发语言
小技与小术14 分钟前
数据结构之树与二叉树
开发语言·数据结构·python
hccee35 分钟前
C# IO文件操作
开发语言·c#
hummhumm40 分钟前
第 25 章 - Golang 项目结构
java·开发语言·前端·后端·python·elasticsearch·golang
J老熊1 小时前
JavaFX:简介、使用场景、常见问题及对比其他框架分析
java·开发语言·后端·面试·系统架构·软件工程
zmd-zk1 小时前
flink学习(2)——wordcount案例
大数据·开发语言·学习·flink
好奇的菜鸟1 小时前
Go语言中的引用类型:指针与传递机制
开发语言·后端·golang