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

时间:2010-07-16 07:42:02

标签: 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 = true;
if (fdlg.ShowDialog() == DialogResult.OK)
{
    txtpath.Text = fdlg.FileName;
}

问题是所选文件是在我不想要的后台打开的。如何在不打开文件的情况下获取所选文件的路径?

1 个答案:

答案 0 :(得分:9)

显示OpenFileDialog并且用户选择文件不会打开该文件。可以通过调用OpenFile打开该文件。在您发布的代码中,文件未打开。该代码似乎是从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)。