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}", "文件夹已选择");
                }
            }

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

相关推荐
憧憬成为原神糕手1 分钟前
c++_list
开发语言·c++
idealzouhu4 分钟前
Java 并发编程 —— AQS 抽象队列同步器
java·开发语言
爱吃油淋鸡的莫何4 分钟前
Conda新建python虚拟环境问题
开发语言·python·conda
闲人编程11 分钟前
Python实现日志采集功能
开发语言·python·fluentd·filebeat·日志采集
Sol-itude18 分钟前
关于MATLAB计算3维图的向量夹角总是不正确的问题记录
开发语言·matlab·问题解决·向量
我是苏苏25 分钟前
Web开发:ABP框架3——入门级别的接口增删改查实现原理
c#·web开发·abp
奔驰的小野码30 分钟前
java通过org.eclipse.milo实现OPCUA客户端进行连接和订阅
java·开发语言
Zhen (Evan) Wang32 分钟前
.NET 6 API + Dapper + SQL Server 2014
数据库·c#·.net
VB.Net38 分钟前
EmguCV学习笔记 VB.Net 12.3 OCR
opencv·计算机视觉·c#·ocr·图像·vb.net·emgucv
俊哥V40 分钟前
[备忘]测算.net中对象所占用的内存
c#·.net·内存