C# 如何禁用OpenFileDialog自动打开文件?

C# 如何禁用OpenFileDialog自动打开文件?,c#,C#,我正在使用以下代码选择要在Windows窗体项目中导入的文件 OpenFileDialog fdlg = new OpenFileDialog(); fdlg.Title = "C# Corner Open File Dialog"; fdlg.InitialDirectory = @"c:\"; fdlg.Filter = "All files (*.*)|*.*|All files (*.*)|*.*"; fdlg.FilterIndex = 2; fdlg.RestoreDirectory

我正在使用以下代码选择要在Windows窗体项目中导入的文件

OpenFileDialog fdlg = new OpenFileDialog();
fdlg.Title = "C# Corner Open File Dialog";
fdlg.InitialDirectory = @"c:\";
fdlg.Filter = "All files (*.*)|*.*|All files (*.*)|*.*";
fdlg.FilterIndex = 2;
fdlg.RestoreDirectory = true;
if (fdlg.ShowDialog() == DialogResult.OK)
{
    txtpath.Text = fdlg.FileName;
}
问题是,所选文件是在后台打开的,我不希望这样。如何在不打开选定文件的情况下仅获取其路径?

显示一个文件,而用户选择的文件不会打开该文件。可以通过调用打开该文件。在您发布的代码中,文件未打开。该代码似乎是从MSDN上的示例中复制的。该示例的其余代码如下所示:

if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
    try
    {
        if ((myStream = openFileDialog1.OpenFile()) != null)  // File is opened here.
        {
            using (myStream)
            {
                // Insert code to read the stream here.
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("Error: Could not read file from disk. Original error: " +
                        ex.Message);
    }
}

如果文件是在您不想打开的情况下打开的,那么问题肯定出在其他地方,而不是您发布的代码中。例如,您可能在上次使用完文件后没有关闭该文件(例如,通过使用Dispose)。

该代码在我的测试中没有打开该文件。。。你能展示一个简短但完整的程序来演示这个问题吗?你想打开哪些文件?对于系统文件夹,其行为不同。。e、 g.如果您使用..打开Windows/Fonts文件夹。。OpenFileDialog它将在字体查看器中打开文件。。而不是选择文件…我正在选择.xls文件,然后使用oledb connectionstring导入工作表。有什么问题吗?“但是我不想在后台打开选定的文件。”:你怎么知道的?您使用什么方法查看打开了哪些文件以及它们是何时打开的?当我关闭应用程序时,excel文件将被打开。我正在共享网络上使用excel文件我在使用该文件后关闭了连接。这已经过去很长时间了,但为了完整起见,FileOpenDialog会检查文件的状态,如果该文件已在使用中,即使它实际上没有打开该文件,实际上也会产生错误。看见