Работа с файлом (Проверка и запись/чтение)

Стоит концепция, при запуске создается txt файл в директории с документами. Туда записывается токен, и при следующем запуске происходит проверка:

если файл существует - вывести сообщение или создать файл и записать в него токен

Я уверен что все верно, но не могу понять почему появляется ошибка, мол файл уже занят другим процессом, и не дает записать/прочитать себя.

введите сюда описание изображения

Мой код:

EDIT

            var username = Environment.UserName;
            var date = Environment.TickCount;
            var id = Environment.UserName;

            string token_param = "123456789";
            int token_lenght = 6;
            string token_result = "";

            //Создание объекта для генерации чисел
            Random rnd = new Random();

            StreamWriter token = new StreamWriter("C:\\Users\\" + username + "\\Documents\\token.txt");

            int token_lng = token_param.Length;

            var path = "C:\\Users\\" + username + "\\Documents\\token.txt";
            var exist = File.Exists(path);
            Console.WriteLine(exist);

            if (exist == true)
            {
                string content = File.ReadAllText("C:\\Users\\" + username + "\\Documents\\token.txt");
                Console.WriteLine("Current content of file:");
                Console.WriteLine(content);
            }

            else if (exist == false)
            {
                for (int i = 0; i < token_lenght; i++)
                {
                    File.Create("C:\\Users\\" + username + "\\Documents\\token.txt");
                    token.Flush();
                    token_result += token_param[rnd.Next(token_lng)];
                    token.WriteLine(token_result);
                }
            }

            Console.WriteLine("\n {0}", token_result);

Ответы (1 шт):

Автор решения: Zekoy

StreamWriter token = new StreamWriter("C:\\Users\\" + username + "\\Documents\\token.txt"); - был лишней строкой, файл открывался потоком и оставался открытым, тем самым не давая другим его использовать.

Убрал лишнюю строчку. Так-же упростил немного, переделал метод записи в файл.

using (StreamWriter token = new StreamWriter(path, false, System.Text.Encoding.Default))
{
    for (int i = 0; i < token_lenght; i++)
    {
        token_result += token_param[rnd.Next(token_lng)];
        token.WriteLine(token_result);
    }
}
→ Ссылка