Как увеличить число в файле, который я создаю, каждый раз, когда создается новый файл? - PullRequest
1 голос
/ 04 января 2012

Я создаю консольное приложение для преобразования файлов, чтобы изменять XML-файлы, сгенерированные при экспорте корзины покупок, в текстовые файлы EDI x12 850 с использованием Visual C #.Мне нужно, чтобы одно число в создаваемом txt-файле увеличивалось на единицу, а затем сохраняло этот новый номер в самом приложении, чтобы следующий преобразованный файл увеличивался на единицу после последнего созданного файла, и чтобы это продолжалось с каждым дополнительным преобразованным файлом.Как в прошлом это можно было сделать?Спасибо.

Тирель

Ответы [ 2 ]

2 голосов
/ 04 января 2012

Предполагается, что один экземпляр программы и что значение необходимо сохранить при перезапуске приложения (и, возможно, компьютера):

  • Используйте файл для хранения текущего значения вашего счетчика
  • Когда приложение запускается, прочитайте это значение
  • Увеличивайте значение в памяти по мере необходимости (в int или как вы используете)
  • Перед выходом из приложения перезаписать файл новым значением
0 голосов
/ 04 января 2012

Ну, это зависит от многих вещей.

Главным вопросом будет эффективность.

Наблюдатель файловой системы MSDN ЗДЕСЬ даст вамсобытия создаваемых файлов, но тогда вам придется иметь дело со всеми потенциальными сценариями, например, кто-то помещает файлы другого типа в каталог, несколько файлов одновременно и т. д.

Если бы я проектировал такую ​​вещь, я бы рассмотрел многопоточное приложение и несколько очередей.

Part # 2 ...

Он не будет изменять целое число, он сообщит вам, когдафайлы создаются / удаляются и т. д. Отслеживание этих событий позволит вам отслеживать сами файлы.Сохранение этого параметра потребует чего-то внешнего для работающего приложения, такого как раздел реестра или файл на диске.Ставя в очередь события от наблюдателя файловой системы, вы можете контролировать доступ к этому сохраненному файлу в четко организованном порядке, гарантируя, что он всегда соответствует выполняемой операции, а не только событию создания или удаления файла.

По существу каждыйКогда приложение загружает, получают последнее значение из файла, поскольку процесс операции увеличивает / уменьшает значение в памяти и записывает его обратно в этот файл.Значение будет целым числом в памяти и просто увеличится или уменьшится с помощью ++ или - как подробно здесь

...