对于%temp%位置,OpenFileDialog.RestoreDirectory是否失败?错误或功能

时间:2013-06-15 07:34:49

标签: c# .net

在我的应用中,我使用OpenFileDialog从临时位置(%temp%)中选择文件。现在当我再次使用OpenFileDialog时,它会从其他位置打开。如果选择了除temp之外的任何文件夹,则此功能正常工作。

这是错误或功能还是技术限制?

我写了这段代码。

public string[] OnOpenFile(string filetype)
{
    string strReturn = null;
    string[] strFilename = null;
    System.Windows.Forms.OpenFileDialog fdlg = new System.Windows.Forms.OpenFileDialog();
    fdlg.Title = "Select an Excel file to Upload.";
    fdlg.Filter = filetype;
    fdlg.RestoreDirectory = true;
    if (fdlg.ShowDialog() == DialogResult.OK) 
    {
        strFilename = fdlg.FileNames;
    }
    return strFilename;
}

1 个答案:

答案 0 :(得分:2)

您可以使用http://msdn.microsoft.com/en-us/library/system.windows.forms.filedialog.initialdirectory.aspx

中记录的 InitialDirectory 属性 在你的例子中

fdlg.InitialDirectory = Path.GetTempPath();

在LinqPad中运行此C#Proram会产生想要的结果

void Main()
{
OnOpenFile();
OnOpenFile();
OnOpenFile();
}
    public string[] OnOpenFile()
{
    string strReturn = null;
    string[] strFilename = null;
    System.Windows.Forms.OpenFileDialog fdlg = new System.Windows.Forms.OpenFileDialog();
    fdlg.Title = "Select an Excel file to Upload.";
    //fdlg.Filter = filetype;
    fdlg.InitialDirectory = Path.GetTempPath();
    fdlg.RestoreDirectory = true;
    if (fdlg.ShowDialog() == DialogResult.OK) 
    {
        strFilename = fdlg.FileNames;
    }
    return strFilename;
}

如果您发表评论

fdlg.InitialDirectory = Path.GetTempPath();

你可以实现想要的行为。

每次在文件夹中选择文件时,OpenFileDialog中的该文件夹都会打开。 如果按“取消”,则必须以差异方式处理所选路径 - 在某个字符串变量中,然后再次打开OpenFileDialog时设置InitialDirectory