当前位置: 首页 > news >正文

5.浏览本地文件获取路径与文件名称 C#例子 WPF例子

在开发桌面应用程序时,经常需要让用户选择文件并获取其路径和名称。在 WPF 中,OpenFileDialog 是一个非常实用的控件,可以帮助我们轻松实现这一功能。本文将详细介绍如何使用 OpenFileDialog 获取文件的完整路径和文件名,并展示一个简单的示例代码。


1. 引言

在许多桌面应用程序中,用户需要从文件系统中选择文件进行操作。例如,用户可能需要选择一个配置文件、图片或其他类型的文件。

OpenFileDialog 是 WPF 提供的一个对话框控件,用于打开文件选择窗口,让用户选择文件并获取其路径和名称。


2. 使用 OpenFileDialog

2.1 创建 OpenFileDialog 实例

首先,需要创建一个 OpenFileDialog 的实例,并设置一些基本属性,如文件过滤器和初始目录。

string baseDirectory = AppDomain.CurrentDomain.BaseDirectory;OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "All files (*.*)|*.*"; // 设置文件过滤
openFileDialog.InitialDirectory = baseDirectory; // 设置初始目录
  • Filter:设置文件过滤器,允许用户选择特定类型的文件。例如,"All files (*.*)|*.*" 表示允许选择所有类型的文件。

  • InitialDirectory:设置对话框打开时的初始目录。通常设置为应用程序的当前目录。

2.2 显示对话框并获取用户选择

使用 ShowDialog 方法显示对话框,并检查用户是否选择了文件。制

if (openFileDialog.ShowDialog() == true)
{// 获取选中文件的完整路径string fullpath = openFileDialog.FileName;// 获取文件名string filename = Path.GetFileName(fullpath);// 保存完整路径ARBFilepath = fullpath;// 将文件名显示在文本框中TextBlock1.Text = filename;
}
  • ShowDialog:显示对话框并等待用户操作。如果用户打开了文件,返回值为 true;如果用户取消操作,返回值为 false

  • FileName:返回用户选择的文件的完整路径。虽然属性叫FileName但是获取的是路径。

  • Path.GetFileName:从完整路径中提取文件名。

3. XAML 代码

以下是对应的 XAML 代码,包含一个按钮和一个文本框,用于触发文件选择对话框并显示文件名。

        <Button Content="选择文件" Click="Button_Click"/><TextBlock Name="TextBlock1"/>

4. 总结

通过 OpenFileDialog,我们可以轻松地让用户选择文件,并获取其完整路径和文件名。FileName 属性返回的是完整路径,而 Path.GetFileName 方法可以从中提取文件名。在实际开发中,可以根据需要对文件路径进行进一步处理,例如计算相对路径或进行文件操作。

希望本文能帮助你更好地理解和使用 OpenFileDialog。如果有任何疑问或建议,欢迎在评论区留言。


6. 参考资料

  • Microsoft Docs - OpenFileDialog

  • Microsoft Docs - Path.GetFileName

http://www.dtcms.com/a/279563.html

相关文章:

  • Elasticsearch 9.x 升级变化
  • 【安卓笔记】线程基本使用:锁、锁案例
  • Windows安装postgreSQL(保姆级教程)
  • 机床自动化中的“方言翻译官”:EtherNet/IP 转 PROFIBUS DP 实战手记
  • 安全初级(一)
  • 胡志明证券交易所新一代交易系统解决方案——基于美联储利率决议背景下的越南跨境金融基础设施升
  • pycharm恢复出厂设置,可以解决大多数pycharm存在的问题
  • nginx:SSL_CTX_use_PrivateKey failed
  • 怎么 将训练后的词嵌入向量反编译为自然语言
  • AI多因子模型解析白银14年新高:流动性压力与工业避险需求的联动效应
  • 数字化工厂规划-项目启动会汇报材料编写思路
  • Android Studio C++/JNI/Kotlin 示例 二
  • 三相新能源并网系统序阻抗模型——序阻抗分析器IMAnalyzer
  • Docker部署语音转文字(STT)服务并接入Home Assistant
  • linux服务器redis配置开机自启
  • 2025 R3CTF
  • 我的开源项目-AI Agent 配置系统
  • 技嘉UEFI固件SMM漏洞使系统面临固件植入和持久控制风险
  • Oracle 学习笔记
  • 【工具变量】A股上市公司产学研合作及专利数据统计(1998-2023年)
  • TextIn:文档全能助手,让学习效率飙升的良心软件~
  • 《汇编语言:基于X86处理器》第7章 复习题和练习,编程练习
  • RAG索引流程中的文档解析:工业级实践方案与最佳实践
  • SMTPman,发送邮件服务器smtp怎么填才行?
  • 鹧鸪云:别墅光储项目方案设计的最终选择
  • 面试150 二叉树中的最大路径和
  • 水务工程中自动化应用:EtherNet/IP转PROFIBUS DP连接超声波流量计
  • 9.服务容错:构建高可用微服务的核心防御
  • Go泛型完全指南:从基础到实战应用
  • 【深度学习笔记】2 浅层神经网络