Еще одно решение, которое вы можете реализовать, - это сделать ваше приложение немного осведомленным о своих данных.
Создайте простое строковое значение, которое вы сохраняете (или, при желании, сохраняйте его в Hashtable, чтобы вы могли хранить многие свойства таким образом), которое включает «Version».
При запуске приложения с графическим интерфейсом сравните сохраненную «версию» с текущей версией приложения. Если сохраненная версия не существует или если она существует и соответствует, не предпринимайте никаких действий.
Если он существует и не совпадает, автоматически очищать старые сохраненные данные; или, альтернативно, попросите пользователя посмотреть, хотят ли они, чтобы эти данные были удалены (какая из них лучше будет зависеть от вашей реализации)
Вы также можете использовать CodeModuleListener для прослушивания события удаления - когда это произойдет, вы также можете выполнить очистку в это время или вместо него.
(В качестве самостоятельной и немного постыдной саморекламы, я сейчас работаю над разделяемой библиотекой для Blackberry, которая значительно упрощает управление сохранением, а также резервное копирование и восстановление данных на рабочем столе. Я делаю это как часть проект BBSSH, но я разделю его на отдельную библиотеку основных компонентов и опубликую его под двойной лицензией GPL / необязательной коммерческой лицензией. Он будет содержать хуки для очистки данных и управления версиями данных.)