Это должен быть глупый вопрос, но с моей логикой я не могу понять, почему он не выходит. Это мой цикл:До тех пор, пока цикл не выйдет
Random _random = new Random();
int num;
char let;
string TempName = "~";
string sTempPath;
do
{
while (TempName.Length < 12)
{
num = _random.Next(0, 26);
let = (char)('a' + num);
TempName = TempName + let;
}
sTempPath = sDirectory + @"\" + TempName + @"." + sExt;
//MessageBox.Show(sTempPath);
} while (!File.Exists(sTempPath));
Так что с моей логикой, когда начинается Do цикл, он непосредственно запускает цикл, а внутри него. Пока цикл существует после того, как TempName.Length
больше 12, а затем цикл должен выйти, поскольку файл не существует. Итак, где я не прав?
Вы делаете жизнь трудно для себя. Замените все это на ['Path.GetTempFileName'] (https://msdn.microsoft.com/en-us/library/system.io.path.gettempfilename%28v=vs.110%29.aspx?f=255&MSPPError = -2147217396). –
Мне кажется, что очень легко понять это с помощью короткой сессии в отладчике. –
Эта переменная TempName выглядит так, что ее нужно будет сбросить, прежде чем вводить цикл while. – LarsTech