Код: Выделить всё
string pathOfRelevantStuff = "path";
string fileOfRelevantStuff = Path.Combine(pathOfRelevantStuff, $"fileName_1.json");
Utf8JsonWriter relevantDataWriter = new(File.Create(fileOfRelevantStuff));
JsonSerializer.Serialize(relevantDataWriter, dataToBeReadLater);
relevantDataWriter.Flush();
relevantDataWriter.Dispose();
Код: Выделить всё
string pathToRead = "path";
FileStream relevantDataReader = null;
foreach (string fileToRead in Directory.EnumerateFiles(pathToRead, "fileName_*"))
{
try
{
relevantDataReader = File.OpenRead(fileToRead);
// [...]
}
}
Во время отладки я прервал выполнение после соответствующей DataWriter.Dispose();, перешел в проводник Windows и попытался просмотреть содержимое файла: Блокнот говорит, что невозможно открыть файл, поскольку он используется другим процессом.
/>Следующий обходной путь работает нормально:
Код: Выделить всё
string pathOfRelevantStuff = "path";
string fileOfRelevantStuff = Path.Combine(pathOfRelevantStuff, $"fileName_1.json");
StreamWriter relevantDataWriter = File.CreateText(fileOfRelevantStuff);
string relevantDataString = JsonSerializer.Serialize(dataToBeReadLater);
relevantDataWriter.WriteLine(relevantDataString);
relevantDataWriter.Close();
relevantDataWriter.Dispose();
Что я делаю не так с первым подходом?
Подробнее здесь: https://stackoverflow.com/questions/799 ... jsonwriter
Мобильная версия