Почему StreamReader включает escape-символы в вывод строки?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему StreamReader включает escape-символы в вывод строки?

Сообщение Anonymous »

Я читаю текстовый файл с помощью StreamReader, и он выводит escape-символы. Я использую следующий код:

Код: Выделить всё

using (StreamReader reader = new StreamReader(saveLocation, System.Text.Encoding.UTF8))
{
string line;
while ((line = reader.ReadLine()) != null)
{
...
}
}
Когда я открываю текстовый файл вручную, рассматриваемая строка читает value_start «FILE_NAME», но значение строки в Visual Studio сохраняется в моей структуре данных это " value_start \"FILE_NAME\"". Я считаю, что escape-символы включены, но в моем исследовании по этой теме StreamReader должен игнорировать escape-символы.
Мой файл записывается так:

Код: Выделить всё

private static void WriteIndexFile(
string saveLocation,
SortedDictionary filesToWrite)
{
using (StreamWriter writer = new StreamWriter(saveLocation, false, System.Text.Encoding.UTF8))
{
writer.WriteLine("cross_ref");
foreach (KeyValuePair kvp in filesToWrite)
{
writer.WriteLine($"  file_start \"{kvp.Key}\"");
writer.WriteLine($"     filename \"{kvp.Value}\"");
writer.WriteLine($"     #modified {File.GetLastWriteTime(kvp.Value).ToString()}");
writer.WriteLine($"  file_end");
}
writer.WriteLine("end_cross_ref");
}
}
Что-то я делаю неправильно при записи или чтении файлов, что может привести к чтению escape-символов?
ИЗМЕНИТЬ
Похоже, я не совсем понял, что мне на самом деле нужно. Проблема в том, что, поскольку escape-символы появляются в строках, когда я читаю файл, он сохраняется в переменной с escape-символами. Когда я затем сравниваю эту переменную, которая должна представлять собой полный путь к файлу, с файлами, которые я получаю из Directory.GetFiles(), они не равны друг другу, хотя и должны.
Например, «C:data\local\files\file_name.txt» из Directory.GetFiles() сравнивается с «\"C:data\local\files\file_name.txt \"" и строки не равны. Если бы escape-символы не присутствовали в последнем, они бы присутствовали.
Как я могу обновить свой код, чтобы он не включал escape-символы?

Подробнее здесь: https://stackoverflow.com/questions/788 ... for-a-line
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»