在我的应用中,我使用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;
}
答案 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