Adding a string to the verbatim string literal

c#, string-literals, verbatim-string

Solution

Do it like this (preferred):

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

Or like this:

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

The first one uses `string.Format`, which basically replaces the {0} in the first parameter with the value in the second parameter and returns the result.

The second one uses classical string concatenation and what I did there was to remove the double quotes after the last backslash (`""..\` instead of `""..\""`), because you didn't want the quotes after the backslash. You wanted the quotes after `defaultPath`. And that's what this code does: It appends `defaultPath` (`" + defaultPath`) and appends the closing quote afterwards (`+ "\""`).

Problem

I have a path that is named defaultPath I want to add it into this verbatim string literal but can quite get the quotes around it. ``` @"""C:\Mavro\MavBridge\Server\MavBridgeService.exe"" /service /data ""..\Data""" ``` I was trying to add +defaultPath to replace Data. So lets say I have a folder name Data.Apple I want the output to be ``` "C:\Mavro\MavBridge\Server\MavBridgeService.exe" /service /data "..\Data.Apple" ``` But when I have been doing it for the past half hour I have been getting ``` "C:\Mavro\MavBridge\Server\MavBridgeService.exe" /service /data "..\"Data.Apple ``` or ``` "C:\Mavro\MavBridge\Server\MavBridgeService.exe" /service /data "..\" + defaultPath ```

Original source