From Linux, I would surround the name that contains a single quote with double quotes. When I try to do this for the string passed to GetFile(), it get an exception: "cannot perform requested operation in current session state".
I am doing this in a .cpp file as part of a project that has a mix of c++ and c#:
String^ filename = "\"" + srcFile + "\"";
m_scp->GetFile(filename, m_stream);
Using single quotes instead seems to work for other embedded characters in the file name (such as parentheses), but of course does not work for embedded single quotes.