0

カスタム WPF ダイアログ ボックスを使用して 1 つ以上のファイルを選択しています。問題は、複数のファイルを選択すると、Argumentexception("Illegal characters in path.") がスローされることです。

void OnPathChanged(IFileDlgExt 送信者、文字列パス名)
FileDialogExtクラスのメソッド。問題の理由は、複数のファイルのパス名が次のようになっていることです。
D:\Development\ "WpfCustomFileDialog.dll" "WpfCustomFileDialog.pdb"
の有効なパラメーターではないものはどれですか
System.IO.Path.GetFileName
Argumentexception("Illegal characters in path.") をスローします。

どうすればこれを修正できますか?

よろしく

4

1 に答える 1

2

お粗末な戻り値ですが、実際には修正する必要があるようには見えません。返されたものを分離または解析し、実際の名前ごとpathNameに呼び出すだけです。GetFileName()

あなたの行が文字列であると仮定するとD:\、できるはずです.Split('"'). 結果の配列を.Trim()誤った空白まで反復処理し、空になったエントリ (引用符で囲まれた名前の間のスペース) を取り除きます。

次に、最初の配列要素 (フォルダー) を他の各要素 (ファイル) と組み合わせると、それらが有効なファイル名になります。

プロジェクトをソースとして含める場合は、ウィンドウ内でこの作業を行い、List<String>醜い文字列ではなく a または何かを返したい場合があります。

于 2014-04-16T19:37:24.617 に答える