С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
2 / 1 / 2
Регистрация: 21.12.2016
Сообщений: 32

FileSystemWatcher Как создать несколько копий файла?

01.05.2019, 23:31. Показов 1949. Ответов 5

Студворк — интернет-сервис помощи студентам
Привет всем программистам! Имеется метод OnChange который реагирует на изменение файла, проблема в том что при изменении программа сохраняет текущее изменение и всё, то есть если создать файл, написать там 123, а потом дописать 456, то в итоге будет один файл 123456, а мне нужно два отдельных 123 и 123456, не знаю как сделать.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private static void OnChanged(object sender, FileSystemEventArgs e)
            {
                try
                {
                    watcher.EnableRaisingEvents = false;
                    Console.WriteLine($"Файл изменен: {e.Name} \r\nДействие произведенное с ним: {e.ChangeType} \r\nПуть до файла: {e.FullPath} \r\nВремя изменения:{DateTime.Now.ToLocalTime()}\r\n");
                    string backUpFileName = pathSystem + "\\" + e.Name;
                    File.Copy(e.FullPath, backUpFileName, true);
                }
                finally
                {
                    watcher.EnableRaisingEvents = true;
                }
            }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.05.2019, 23:31
Ответы с готовыми решениями:

Как приложению создать несколько копий себя?
Здравствуйте! Столкнулся с проблемой, как приложению создать несколько копий себя на локальной машине и в сети?

Создать несколько копий PictureBox
Добрый день. На форме имеется один PictureBox с картинкой. Как сделать чтобы при клике на него появлялся второй точно такой же...

Автокопирование одного файла office в несколько его копий
Здравствуйте! ПОМОГИТЕ МНЕ ПОЖАЛУЙСТА?! Меня зовут Александр. Мне 38 лет. С 15лет(т.е. с1993г.) моя мать, меня считает нахлебником. Хотя я...

5
HF
 Аватар для HF
1310 / 888 / 200
Регистрация: 09.09.2011
Сообщений: 2,608
Записей в блоге: 2
01.05.2019, 23:56
Цитата Сообщение от sevenamelkin Посмотреть сообщение
создать файл, написать там 123, а потом дописать 456, то в итоге будет один файл 123456
Вы точно уверены что понимаете разницу в действиях - создать файл и записать в него "123"? Файл и содержимое.
FileSystemWatcher мониторит только изменения состояния наблюдаемых файлов, но не их внутренности.
e.Name - это имя файла, а не его изменённое содержимое.
В итоге получается непонятная смесь того что вы делаете и предположительно хотите получить.
1
2 / 1 / 2
Регистрация: 21.12.2016
Сообщений: 32
02.05.2019, 00:00  [ТС]
HF, я вас уверяю, что я точно уверен в том, что я хочу сделать, для создания файла у меня есть метод OnCreated, а конкретно этот метод реагирует на изменения внутри файла, и я хочу чтобы при каждом изменении создавался новый файл, а в случае этого кода выложенного мной файл пересохраняется с текущим изменением
0
HF
 Аватар для HF
1310 / 888 / 200
Регистрация: 09.09.2011
Сообщений: 2,608
Записей в блоге: 2
02.05.2019, 00:11
Цитата Сообщение от sevenamelkin Посмотреть сообщение
HF, я вас уверяю, что я точно уверен в том, что я хочу сделать,
У вас есть наблюдаемый файл "test.txt". Каталог \Test. И есть каталог для бакапов \Backup.
1) Записываем туда "123". Он копируется в \Backup. с именем "test.txt" и содержимым "123".
2) Изменяем файл, дописываем туда "456".

Вопрос: что по вашему должно появиться в каталоге \Backup? Какой файл и какое содержимое?

По моему представлению как работает FileSystemWatcher и ваш код:
В папке \Backup перезаписывается файл "test.txt" с содержимым текущего файла "\Test\test.txt". Текущее содержимое "456".
1
2 / 1 / 2
Регистрация: 21.12.2016
Сообщений: 32
02.05.2019, 00:28  [ТС]
HF, у меня есть две папки: Exchange и ExchangeSystem, FileSystemWatcher наблюдает за изменениями в папке Exchange и сохраняет каждое новое изменение в папку ExchangeSystem. Теперь, что я хочу: есть файл test.txt, я записываю туда 123, он бэкапится в папку ExchangeSystem с записью внутри 123, потом в папке Exchange я открываю ЭТОТ же файл и дописываю туда 456, и я хочу чтобы в конечном итоге в папке ExchangeSystem были два файла: test.txt с содержимым "123", и test(1).txt с содержимым "123456".
Теперь, что у меня получается: создаю в Exchange файл test.txt, записываю туда "123", в ExchangeSystem, соответственно, создаётся test.txt с содержимым "123", потом я открываю этот файл в папке Exchange и дописываю "456" к "123" то есть "123456", и в папке ExchangeSystem получается только один файл test.txt с содержимым "123456".
Ответил наиболее развёрнуто.
0
HF
 Аватар для HF
1310 / 888 / 200
Регистрация: 09.09.2011
Сообщений: 2,608
Записей в блоге: 2
02.05.2019, 00:40
Цитата Сообщение от sevenamelkin Посмотреть сообщение
и я хочу чтобы в конечном итоге в папке ExchangeSystem были два файла: test.txt с содержимым "123", и test(1).txt с содержимым "123456".
Всё верно я понял и описал поведение точно как вы сказали, только названия каталогов другие.

Это ваша личная хотелка. Вы, как программист, сами должны придумать сценарий, который будет создавать такие файлы.
FileSystemWatcher не занимается ни копированием, ни придумыванием имён и всего остального. Это разные темы.
1) В настоящий момент, ваш код точно копирует файл из одного каталога в другой. И это вполне понятно и разумно. Но не согласуется только с вашей задумкой. Это не относится к программированию - а к "самоизвращениям". То есть к самостоятельной работе.

2) Просто гипотетически представьте что в папке "Exchange" появился ещё файл "test(1).txt". Совершенно другой, чем "test.txt", просто называется похоже. Первое же событие копирует "test(1).txt" в каталог "ExchangeSystem", перезаписав файл "test(1).txt", который на текущий момент, по вашей логике, был одной из копий файла "test.txt". Безумная история.
Придумывайте уникальные тэги для имён, или храните в подкаталогах, с именами файлов или ещё что придумайте. Но ситуаций можно ещё предположить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.05.2019, 00:40
Помогаю со студенческими работами здесь

Создать 6 копий файла одной командой
Не понимаю, как сделать это одной командой. Помогите, пожалуйста.

Скопировать файл в другой каталог и создать N копий файла
Написала вот такой код, но он не работает @echo off set /p pset="Введите путь файла - " set /p pcop="Введите имя папки...

Как батником сделать несколько копий файлов
Добрый день необходимо батником в папке сделать 200 одинаковых копий файла 1.htm с названиями 1, 2, 3, 4, и т.д. до 200.htm. спасибо...

Создать десять копий файла, имеющих порядковый номер в имени
Нужен простой скрипт, размножающий текстовый файл с определенным названием в десять копий с прибавлением к названию 01, 02, 03...10.

Создать N копий файла в том же каталоге, в котором он сам и находится
Вопрос в сабже, когда-то делал, но сейчас не помню. Имя файлов можно просто по порядку числами)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru