选择文件c#并获取目录

本文关键字:获取 文件 选择 | 更新日期: 2023-09-27 18:01:31

我试图打开一个文件对话框,以便用户可以选择访问数据库的位置。有人能解释如何添加一个文件对话框时,单击按钮,以及如何将用户选择转换为包含文件目录的字符串(c:'abc'dfg'1234.txt)?

谢谢

选择文件c#并获取目录

由于您没有说明您使用的技术(WPF或WinForms),我假设您使用的是WinForms。在这种情况下,在代码中使用OpenFileDialog。对话框关闭后,您可以使用FileName属性获得所选的完整文件名。

在我上面链接的文档页面上有一个如何使用它的示例,我稍微修改了一下,因为您想要文件名,而不是流:

private void button1_Click(object sender, System.EventArgs e)
{
    OpenFileDialog openFileDialog1 = new OpenFileDialog();
    
    openFileDialog1.InitialDirectory = "c:''" ;
    openFileDialog1.Filter = "Database files (*.mdb, *.accdb)|*.mdb;*.accdb" ;
    openFileDialog1.FilterIndex = 0;
    openFileDialog1.RestoreDirectory = true ;
    
    if (openFileDialog1.ShowDialog() != DialogResult.OK)
    { 
        return;
    }
    string selectedFileName = openFileDialog1.FileName;
    //...
}

根据你之前的问题,我假设你正在使用WinForms。您可以使用OpenFileDialog类来实现此目的。请参阅下面的代码,假设您的按钮id为button1,它将在按钮Click事件上运行:

private void button1_Click(object sender, System.EventArgs e)
{
    OpenFileDialog openFileDialog1 = new OpenFileDialog();
    openFileDialog1.InitialDirectory = "c:''";
    openFileDialog1.Filter = "Access files (*.accdb)|*.accdb|Old Access files (*.mdb)|*.mdb";
    openFileDialog1.FilterIndex = 2;
    openFileDialog1.RestoreDirectory = true;
    if(openFileDialog1.ShowDialog() == DialogResult.OK)
    {
       var path = openFileDialog1.FileName;
    }
}

更多信息。

假设您实际上有一个带有button (button1)…

在构造函数中钩子到button1的click事件

...
button1.Click += button1_Click;
...

然后定义处理函数并随意使用System.Windows.Forms.OpenFileDialog

void button1_Click(object sender, EventArgs e)
{
  string oSelectedFile = "";
  System.Windows.Forms.OpenFileDialog oDlg = new System.Windows.Forms.OpenFileDialog();
  if (System.Windows.Forms.DialogResult.OK == oDlg.ShowDialog())
  {
    oSelectedFile = oDlg.FileName;
    // Do whatever you want with oSelectedFile
  }
}

其实很简单

namespace YourProgram
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        string path = "";
        //Declare the File Dialog
        OpenFileDialog ofd = new OpenFileDialog();
        private void button1_click(object sender, EventArgs e)
        {
            if (odf.ShowDialog() == DialogResult.OK)
            {
                path = ofd.FileName;
            }
        }
    }
}