Я пытаюсь скопировать текстовый файл с разделителями табуляции в postgresql в С# из диска E сервера.
Моя команда sql
NpgsqlCommand cmd = new NpgsqlCommand("COPY scrap (gl_post_date,stock_number,stock_description,reason_code,adjusted_qty,unit_cost,extended_cost,week,cost,catch_all) from" + FileName + ";", conn);
Вот мой код пути
string r = @"E:\";
string t = txtFileName.Text;
FileName = r + t;
Я проверяю свою переменную filename и возвращает путь с двойным обратным слэшем, мне нужно, чтобы он возвращал E:\file.txt
Что я делаю не так
благодаря
В С# обратная косая черта в строке имеет особое значение, например \n
- новая строка, \t
- табуляция... и \\
- это обратная косая черта. Эти комбинации обратного слэша и символа называются escape-последовательностями. Однако в вашем примере вы использовали так называемый стенографический литерал verbatim. @в начале строки означает, что обратная косая черта в строке должна рассматриваться как любой другой символ (он отключает escape-последовательности). Другими словами, @"E:\"
- это то же самое, что и "E:\\"
и это нормально. Для получения дополнительной информации см. Также эту статью и этот вопрос.
Я также предлагаю использовать метод Path.Combine
чтобы Path.Combine
присоединиться к имени диска с именем файла.