3

ユーザー定義のパスに基づく初期ディレクトリでSaveFileDialogを開いています。パスを渡してダイアログを開く前に、このパスが有効であることを確認したいと思います。今私はこれを持っています:

Microsoft.Win32.SaveFileDialog dialog = new Microsoft.Win32.SaveFileDialog();

if (!string.IsNullOrEmpty(initialDirectory) && Directory.Exists(initialDirectory))
{
    dialog.InitialDirectory = initialDirectory;
}

bool? result = dialog.ShowDialog();

ただし、\ShowDialogを呼び出すと、すり抜けてクラッシュが発生しているようです。クラッシュを引き起こす可能性のある他の値はありますか?InitialDirectoryプロパティはどのようなルールに従う必要がありますか?

4

1 に答える 1

7

それを修正するための迅速で簡単な方法は、フルパスを取得することです。

dialog.InitialDirectory = Path.GetFullPath(initialDirectory);

これにより、相対パスがSaveFileDialog期待される絶対パスに拡張されます。これにより、パスに似たほぼすべてのものが完全なルートパスに拡張されます。これには、「/」(現在のフォルダが設定されているドライブのルートになります)や「」(現在のフォルダになります)などが含まれます。

于 2011-02-26T22:51:52.143 に答える