"Как бы я написал цикл, который заменяет каждое число следующим наибольшим числом вплоть до, скажем, сервера 10?"
Вы можете установить серверимя в цикле, используя значение итератора цикла как часть имени сервера
for(int i = 1; i <= 10; i++)
{
txtTextBox.Text = File.Exists($@"\\Server{i}\documents\File.txt")
? $"Server{i} -- File copy successful."
: $"Server{i} -- File copy unsuccessful";
}
Обратите внимание, что приведенный выше код будет перезаписывать значение txtTextBox.Text
на каждой итерации. Вместо этого вы можете захватить все состояния в цикле и затем отобразить их в конце:
txtTextBox.Text = string.Join(Environment.NewLine, Enumerable.Range(1, 10)
.Select(i => File.Exists($@"\\Server{i}\documents\File.txt")
? $"Server{i} -- File copy successful."
: $"Server{i} -- File copy unsuccessful."));
В комментариях, которые вы задали:
«Как бы вы сделали это, если бы местоположение файла было в переменной?»
Один из способов сделать это - использовать строку формата с заполнителем ({0}
), где числобудет идти, а затем использовать string.Format
, чтобы заполнить этот заполнитель внутри цикла.
Мы можем извлечь имя сервера из этой строки, используя string.Split
на символе \
и захватывая первый элемент.
Например:
var serverPath = @"\\Server{0}\documents\File.txt";
txtTextBox.Text = string.Join(Environment.NewLine, Enumerable.Range(1, 10)
.Select(i =>
{
var thisPath = string.Format(serverPath, i);
var serverName = thisPath.Split(new[] { '\\' },
StringSplitOptions.RemoveEmptyEntries).First();
return File.Exists(thisPath)
? $"{serverName} -- File copy successful."
: $"{serverName} -- File copy unsuccessful.";
}));