Работа с файлом (Проверка и запись/чтение)
Стоит концепция, при запуске создается 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);
}
}
