Как использовать "{0}" в File.WriteAllLines?
Итак, я пытаюсь создать несколько файлов с разными именами. Я пытаюсь изменить одно число в имени файла следующим образом, но он не позволяет мне использовать "{0}" для вставки строки.
String value = "1";
foreach (var message in reddit.User.PrivateMessages) {
var pm = message as PrivateMessage;
File.WriteAllText(
(@"C:\Users\MyName\Desktop\Programming\test{0}.txt", value),
pm.Body);
}
Главное, я хочу иметь возможность создавать несколько файлов с циклом foreach. Я могу обрабатывать int отдельно.
3 ответа
Решение
Вы хотите форматирование (String.Format
):
File.WriteAllText(
String.Format(@"C:\Users\MyName\Desktop\Programming\test{0}.txt", value),
pm.Body);
В C#6.0 вы можете поместить это как интерполяцию строки:
File.WriteAllText(
$@"C:\Users\MyName\Desktop\Programming\test{value}.txt",
pm.Body);
Ваш код в настоящее время не работает; ты не учел string.Format(
:
File.WriteAllText(string.Format(@"C:\Users\MyName\Desktop\Programming\test{0}.txt", value), pm.Body);
Вы не можете сделать это с File.WriteAllText
,
Попробуйте это используя string.format
File.WriteAllText(string.format(@"C:\Users\MyName\Desktop\Programming\test{0}.txt", value), pm.Body);
или с помощью C# 6.0, как это
File.WriteAllText($@"C:\Users\MyName\Desktop\Programming\test{value}.txt", pm.Body);