0

私のアプリでは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;
}
4

1 に答える 1

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 を設定します

于 2013-06-15T08:01:45.570 に答える