2012-05-10 9 views
2

私はdefaultPathという名前のパスを持っています。この逐語的な文字列リテラルに追加したいのですが、まさにその周りに引用符を付けることができます。文字列を逐語的な文字列リテラルに追加する

@"""C:\Mavro\MavBridge\Server\MavBridgeService.exe"" /service /data ""..\Data""" 

Dataを置き換えるために+ defaultPathを追加しようとしていました。だから私は、出力が

"C:\Mavro\MavBridge\Server\MavBridgeService.exe" /service /data "..\Data.Apple" 

ようにしたい。しかし、私は過去半時間のためにそれをやっているときに私が

"C:\Mavro\MavBridge\Server\MavBridgeService.exe" /service /data "..\"Data.Apple 

または

を取得されていますData.Apple私はフォルダ名を持って言うことができます
"C:\Mavro\MavBridge\Server\MavBridgeService.exe" /service /data "..\" + defaultPath 
+0

おかえりなさい行うことができ、私は再びあなたを助けるためにしようとすると、マインド...これは私たちから継続しているように聞こえます昨日私は正しい? –

+1

あなたの目を救ってみませんか?関数QuoteString()を作成し、好きな方法でそれらを連結します。 –

+0

ハハええ、かなり!私は昨晩良い進歩をした! – heinst

答えて

7

次のように(推奨)、それを実行します。

string.Format(@"""C:\Mavro\MavBridge\Server\MavBridgeService.exe"" /service /data ""..\{0}""", defaultPath); 

またはこのような:

@"""C:\Mavro\MavBridge\Server\MavBridgeService.exe"" /service /data ""..\" + defaultPath + "\""; 

最初のものは、基本的に二番目のパラメータの値と最初のパラメータに{0}を置き換え、結果を返すstring.Formatを使用します。

もう一つは、古典的な文字列連結を使用し、私がやったことは、あなたがバックスラッシュの後に引用符をしたくなかったので、最後にバックスラッシュ(""..\の代わり""..\"")の後に二重引用符を削除することがありました。 defaultPathの後に引用符を付けたかったのです。そして、それはこのコードが行うことです:defaultPath" + defaultPath)を付け加えて、その後に終了引用符を追加します(+ "\"")。

+0

それはうまくいった。それが何をしたのか私に説明できますか? – heinst

+0

@heinst:更新された回答。これはあなたに理にかなっていますか? –

+0

私は2番目の答えをしようとしていた....私はちょうど2番目の\を追加しなかった....なぜそれを追加しましたか?それ以外はどちらも意味があります – heinst

3

使用String.Formatのは、引用符の間に変数を挿入するには:それは読みと実装することが容易になり

string path = "Data.Apple"; 
string verbatim = string.Format(@"""C:\Mavro\MavBridge\Server\MavBridgeService.exe"" /service /data ""{0}""", path); 
MessageBox.Show(verbatim); 

、あなたは同様に変数のセクションとパスの他の部分を置き換えることができます。

"defaultPath"変数を最後に追加しようとすると、すでに"が追加されているため、正しく動作しません。

2

ですから、C#6で、文字列の補間を利用したい場合は、また

var randomText = "insert something"; 
var yourString = [email protected]"A bunch of text in here 
that is on seperate lines 
but you want to {randomText }"; 
関連する問題