Дозапись в файл с блокировкой

186
15 августа 2017, 11:58

Есть файл с которым работает программа. Она считывает и записывает в него данные. Во время работы программы файл должен быть заблокирован на запись, но открывать на чтение его можно. Использую такое решение:

static FileStream file = File.Open("D:\\Stat.csv", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Read);
static void Main(string[] args)
    {
        // запись в файл
        using (var text = new StreamWriter(file, Encoding.GetEncoding(1251), 1024, leaveOpen: true))
        {
            text.WriteLine("test");
        }
    }

Все работает, но я не нашел перегрузки StreamWriter именно для дозаписи данных. Подскажите решение.

Answer 1

В вашем случае file.Position = file.Length перед записью. Но вообще для этого есть более удобный метод: File.AppendAllText. Файл в этом случае будет создан с блокировкой на запись и шарой на чтение:

return (Stream) new FileStream(path, mode, FileAccess.Write, FileShare.Read, 4096, FileOptions.SequentialScan, Path.GetFileName(path), false, false, checkHost);
READ ALSO
Поиск по JSON файлу

Поиск по JSON файлу

Нашел готовый код:

312
Некоректно работает popup [требует правки]

Некоректно работает popup [требует правки]

Помогите, пожалуйстаНа сайте товары выводятся циклом, к ним подключен magnifi pop-up, но второй по счету всегда не работает, где искать проблему?...

300