Я читаю закодированную строку в память и декодирую ее. Строка - это что-то вроде "test \ file1.txt".C# extract escape символ из строки
Обычно C# видит это как строковый литерал "test \\ file1.txt", правильно присваивая escape-символ обратному символу.
В этом случае C# видит косую черту в качестве escape-символа для файла f из файла. ("\ Е").
Невозможно использовать метод Заменить (@ "\", @ "\") метод строки, потому что C# не находит "\", он находит только "\ f". Имя файла полностью изменено, поэтому я не могу использовать Заменить (@ "\ f", @ "\ f") либо ...
Как я могу продолжить эту строку в памяти и добавить косую черту , так что строка является допустимым путем?
Строка просто загружается из текстового файла и проходит через декодер.
public static string Decode(string inp)
{
byte[] ToDecode = System.Convert.FromBase64String(inp);
return System.Text.ASCIIEncoding.UTF8.GetString(ToDecode);
}
Это где я на самом деле использовать строку (которая называется «A»)
foreach (string A in Attchmnts)
Msg.Attachments.Add(new Attachment(_AttachmentsPath + @"\" + A));
Если проверить содержимое приложения, с помощью немедленно, это результат :
?_AttachmentsPath + @"\" + A
"\\\\BUPC1537\\MailServer\\Attachments\\test\file2.txt"
я вручную закодированные строки с помощью Callin г следующий метод в непосредственной (а затем вставить эти данные в документ XML):
public static string Encode(string inp)
{
byte[] ToEncode = System.Text.ASCIIEncoding.UTF8.GetBytes(inp);
return System.Convert.ToBase64String(ToEncode);
}
//Immediate code
?Utils.Encoder.Encode("test\file2.txt")
"dGVzdAxpbGUyLnR4dA=="
Пожалуйста, покажите свой код. То, что вы говорите, не происходит, когда вы декодируете строку. Здесь должно быть что-то еще. Скорее всего, строка уже неправильно написана в файле. –
Кажется, что вы действительно получаете testfile1.txt при чтении строки – Toto
Добавлен код декодера. – Recipe