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

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


1. 引言

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

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


2. 使用 OpenFileDialog

2.1 创建 OpenFileDialog 实例

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

cs 复制代码
string baseDirectory = AppDomain.CurrentDomain.BaseDirectory;

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

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

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

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

cs 复制代码
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 代码,包含一个按钮和一个文本框,用于触发文件选择对话框并显示文件名。

XML 复制代码
        <Button Content="选择文件" Click="Button_Click"/>
        <TextBlock Name="TextBlock1"/>

4. 总结

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

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


6. 参考资料

相关推荐
草莓熊Lotso几秒前
Python 流程控制完全指南:条件语句 + 循环语句 + 实战案例(零基础入门)
android·开发语言·人工智能·经验分享·笔记·后端·python
laozhoy1几秒前
深入理解Golang中的锁机制
开发语言·后端·golang
雾岛听蓝4 分钟前
C++ 模板初阶
开发语言·c++
小杰帅气5 分钟前
智能指针喵喵喵
开发语言·c++·算法
代码or搬砖5 分钟前
悲观锁讲解
开发语言·数据库
hudawei9966 分钟前
对比kotlin和flutter中的异步编程
开发语言·flutter·kotlin·异步·
南棱笑笑生6 分钟前
20251219给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-5.10】后解决启动不了报atf-2的问题
linux·c语言·开发语言·rockchip
deephub9 分钟前
ONNX Runtime Python 推理性能优化:8 个低延迟工程实践
开发语言·人工智能·python·神经网络·性能优化·onnx
蕨蕨学AI9 分钟前
【Wolfram语言】22 机器学习
开发语言·wolfram
百***787511 分钟前
LLaMA 4 API国内稳定接入指南:中转服务全链路实操与优化方案
开发语言·php·llama