これは非常にあいまいな質問のように思えますが、次のようになります。
ファイルパスの周りに引用符を追加しながら、文字列リテラルを DirectoryInfo 列挙 (ファイルパスを含む) と連結する方法はありますか? さらに、DirectoryInfo 列挙を文字列に変換するときにバックスラッシュが二重にならないようにするにはどうすればよいですか? 私の状況は次のとおりです。
DirectoryInfo filePathDirectory = new DirectoryInfo(filePath);
Process a = new Process();
a.StartInfo.FileName = "C:\\Windows\\system32\\lpr.exe";
a.StartInfo.Arguments = "-SServername.Domain.net -Plp " + "\"" + filePathDirectory + "\"";
a.StartInfo.UseShellExecute = false;
a.Start();
a.WaitForExit();
filePathDirectory
次の値で始まります。
{\\ServerName\Share\Folder\Folder\FileName.xls}
私が思うに、一度連結された文字列に変換されa.StartInfo.Arguments
、次の値が割り当てられます。
-SServername.Domain.net -Plp \"\\\\ServerName\\Share\\Folder\\Folder\\FileName.xls\"
パス内のバックスラッシュの数が 2 倍になるため、これは悪いことです。パスにバックスラッシュが追加されていないことを確認するにはどうすればよいですか?
さらに、引用符を追加するために、バックスラッシュ エスケープ シーケンスを使用しました。しかし、このエスケープ シーケンスのバックスラッシュが誤って文字列に追加されてしまいました。に含まれるファイル パスの前後に引用符を追加するにはどうすればよいa.StartInfo.Arguments
ですか?
PSこれが理にかなっていることを願っています。説明が必要な場合は質問してください。