4

Open/SaveFileDialogs を開くことができる WPF アプリケーションを作成しました。私の PC では、そのようなダイアログを最後に使用したときのディレクトリを記憶し、別のそのようなダイアログを開くと、そのディレクトリが初期ディレクトリとして設定されます。しかし、同僚の PC では覚えていません。

私が使用する正確なクラスはMicrosoft.Win32.OpenFileDialog. どちらもWinXPをインストールしています。

何が原因でしょうか?

更新: どうやらこの問題はまだ解決されていません。私のPCでも発生することがわかりました。複数のファイルを選択して [開く] をクリックするか、Enter キーを押すと、元の場所が保存されないことがわかりました。しかし、ファイルを1つだけ選択して時計を開くか、Enterキーを押す(またはダブルクリックする)と、場所記憶されます。

コードは次のとおりです。

public override void Execute(object parameter) 
{
    OpenFileDialog dialog = new OpenFileDialog();
    dialog.DefaultExt = ".txt";
    dialog.Filter = "Text files (.txt)|*.txt";
    dialog.Multiselect = true;
    dialog.Title = "Select a trace file";
    // The documentation says ShowDialog always returns either true or false, 
    // so we get the value of the returned Nullable<bool> immediately to get 
    // rid of the Nullable<bool> type.
    bool result = dialog.ShowDialog().Value;
    if (result)
    {
        foreach (string fileName in dialog.FileNames)
        {
            traceFilesViewModel.TraceFileList.Add(fileName);

            traceFilesViewModel.StatusBackground = Brushes.PeachPuff;
            traceFilesViewModel.StatusForeground = Brushes.Red;
            traceFilesViewModel.StatusText = "Trace files not loaded.";
        }
    }
}
4

2 に答える 2

4

OpenFileDialogが最後に使用されたディレクトリを「忘れる」可能性があるのは次のとおりです。

  • フォルダが移動/名前変更されました
  • ユーザーには、フォルダを読み取る権限がありません
  • システムドライブ(ユーザープロファイルを含む)がいっぱいで、ユーザーのプロファイルをローカルマシンに適切に保存できません
  • アプリケーションはリモートの場所から実行され、この場所は信頼できるとは見なされません(例:\ server \ deployment \ myapp.exe)

お役に立てば幸いです。

于 2010-03-11T11:54:52.967 に答える
0

それでもエラーが残る場合は、このプロパティを使用して初期ディレクトリを保存できます。openFileDialog1.InitialDirectory = "c:\"

詳細: MDSN FileDialog.InitialDirectory プロパティ

于 2014-02-11T15:18:11.877 に答える