1

私はここで特別な文字をエスケープする必要があると思います:

Process.Start(userSelectedFilePath, "\u0007" & ThisDir.Path & "\u000B" & checkedpath1 & "\u0007")

結果は次のようになる必要があります:userselecfilepath "blackquoted path \ and other folder"

私が間違っているのは何ですか?

ありがとうございました

アップデート

解決:

ControlChars.Quote & Path.Combine(ThisDir.Path, checkedpath1) & ControlChars.Quote
4

2 に答える 2

1

これを試して:

Process.Start(userSelectedFilePath、 "\\"&ThisDir.Path& "\\"&checkedpath1& "\\")

于 2012-11-16T16:56:55.570 に答える
1
Process.Start(userSelectedFilePath, Path.Combine(ThisDir.Path, checkedpath));

Path.Combine

path1がドライブ参照(つまり、「C:」または「D:」)ではなく、DirectorySeparatorChar、AltDirectorySeparatorChar、またはVolumeSeparatorCharで定義されている有効な区切り文字で終わっていない場合、DirectorySeparatorCharは連結前にpath1に追加されます。

path2にルートが含まれていない場合(たとえば、path2が区切り文字またはドライブ指定で始まっていない場合)、結果は2つのパスが連結され、区切り文字が介在します。path2にルートが含まれている場合、path2が返されます。

空白がある場合、パラメーターは解析されません。したがって、path2に空白が含まれている場合(たとえば、「c:\」)、Combineメソッドはpath2のみを返すのではなく、path2をpath1に追加します。

ディレクトリ名とファイル名のすべての無効な文字が、ワイルドカード文字の検索に使用できるため、Combineメソッドで受け入れられないと解釈されるわけではありません。たとえば、Path.Combine( "c:\"、 "* .txt")からファイルを作成する場合は無効になる可能性がありますが、検索文字列としては有効です。したがって、Combineメソッドによって正常に解釈されます。

于 2012-11-16T16:58:29.250 に答える