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. 参考资料

相关推荐
hudd66832 分钟前
JavaEE 初阶 - 多线程(初阶)
java·开发语言·java-ee
I Am a robert girl42 分钟前
稀有事件估计的迭代去对齐:从源码视角拆解重要性采样新范式
开发语言·python·机器学习·重要性采样·蒙特卡洛方法·稀有事件估计
golang学习记1 小时前
rust开发,选VS Code还是RustRover?
开发语言·后端·rust
打工仔折腾 AI1 小时前
从零写一个CAD 05:以鼠标为中心的滚轮缩放,招法能复用但顺序不能反
开发语言·后端·python·性能优化·计算机外设·swift·ai agent 实战
CarIise2 小时前
Java实训阶段查漏补缺复习笔记1
java·开发语言·笔记
事圆则缓2 小时前
Kotlin 泛型方差实战:out、in、星投影与类型擦除
android·开发语言·kotlin
Code_Solitude2 小时前
c语言:二分法的完整补充
c语言·开发语言·算法
智鸟科技GemeOpen开发者智能设备2 小时前
MQTT智能通断器GSCW1M2P · 开发者实战指南
开发语言·物联网·智能家居
青柠之夏cc3 小时前
前端拖拽功能原生实现,不引入拖拽库完成业务
开发语言·前端·python
ym hyd 1113 小时前
题库建立与考试系统源码 Java+SpringBoot+Vue3 前后分离
java·开发语言·vue.js·spring boot·毕设