0

Сразу к делу. Дело в том, что при нажатии что то происходит не так, и приложение вылетает. Вообще я записал 3 string для путей к txt-файлам. Проблемы с одним FileStream нету.

        private void dark_theme_Click(object sender, RoutedEventArgs e)
    {
        using (FileStream fs = File.Create(path3))
        {
            Byte[] flstxt = new UTF8Encoding(true).GetBytes("true");
            fs.Write(flstxt, 0, flstxt.Length);
        }
        using (FileStream fs = File.Create(path2))
        {
            Byte[] flstxt = new UTF8Encoding(true).GetBytes("false");
            fs.Write(flstxt, 0, flstxt.Length);
        }
        using (FileStream fs = File.Create(path))
        {
            Byte[] flstxt = new UTF8Encoding(true).GetBytes("false");
            fs.Write(flstxt, 0, flstxt.Length);
        }
    }
Zenith
  • 37
  • вылетает - текст исключения покажите – aepot Dec 21 '22 at 17:16
  • Вообще текст в файл можно записать так File.WriteAllText(path3, "true");, а вы чего-то нереального намудрили. – aepot Dec 21 '22 at 17:17
  • Вот именно, вылетает без текста исключения, просто сначала прога перестаёт отвечать, а затем вылетает. И кстати, способ не подошёл, ведь почему-то он работает только с 1 строкой, тоесть если я захочу в 1 обработчике менять сразу 3 файла, приложение будет вылетать, а при попытке через байты можно менять 2 файла – Zenith Dec 21 '22 at 17:45
  • заверните весь код в обработвчике в try { код } catch (Exception ex) { MessageBox.Show(ex.ToString()); } и увидите ошибку. То что я вам показал пишет текст в 1 файл. Надо 3 файла, напишите 3 раза. Это должно быть до безобразия просто. Я просто показал, как одной строкой (тремя строками) заменить код, который вы показали. Кстати, зачем вам весь этот изврат с тремя файлами - вы оставили в тайне. – aepot Dec 21 '22 at 19:26
  • Сейчас попробую. Мне надо это чтобы писать в 1 файл true, а в 2 других false, ведь я хочу реализовать систему тем, пока есть 3 темы, а значит 3 txt-файла. – Zenith Dec 22 '22 at 08:48
  • 1
    Спасибо! Оно работает. – Zenith Dec 22 '22 at 11:06
  • Странно, но иногда вылазит ошибка с "Процесс не может получить доступ к файлу, т.к он занят другим процессом". Причём если эту ошибку закрыть, всё работает стабильно – Zenith Dec 22 '22 at 11:20
  • Это значит, один и тот же файл был открыт дважды одновременно. Одним или несколькими приложениями. – aepot Dec 22 '22 at 11:24
  • https://ru.stackoverflow.com/a/1348911/373567 – aepot Dec 22 '22 at 11:30
  • Вообще я нашёл способ решения в виде использования вместо того файла, с которым вылетала ошибка (он был одним и тем же) другого файла, скорее всего реально что-то его использовало. Как считаете, использовать систему данных через файлы, или через реестр? – Zenith Dec 22 '22 at 11:39
  • В реестре не стоит хранить данные, вводимые пользователем - имена, пути, что угодно. Если данные только програмные, то без разницы, где хранить. – aepot Dec 22 '22 at 12:15
  • Спасибо, очень помогли – Zenith Dec 23 '22 at 16:44

0 Answers0