Как реализовать отмену / повтор файлов, отображенных в виде дерева

Может кто-нибудь дать представление о том, как я должен реализовать отменить / повторить вырезать / копировать / вставить файлы (каталоги, вложенные каталоги), сопоставленные в виде дерева в C #?

Было бы здорово иметь несколько примеров кода.

15.12.2008 11:29:27
Что вы имеете в виду отменить / повторить? Что ты с ними делаешь?
xan 15.12.2008 11:32:47
Не могли бы вы изменить тему на что-то осмысленно?
Oliver Friedrich 15.12.2008 11:42:22
3 ОТВЕТА
РЕШЕНИЕ

Для быстрого линейного отмены / повтора вы можете использовать шаблон Memento, используя zip файла в качестве сувенира.

1
15.12.2008 11:52:21

Отмена / повтор обычно выполняется с использованием так называемого «шаблона команды». Выполните поиск в Google или прочитайте следующую статью:

http://blogs.vbcity.com/jspano/articles/198.aspx

5
15.12.2008 11:39:50
+1 за хороший ответ, но не знаю, ответит ли он на вопрос :)
Robert Gould 15.12.2008 11:46:15
Я также понятия не имею, отвечает ли он на вопрос ;-)
Dirk Vollmar 15.12.2008 12:00:40
с новой темой, вы понимаете вопрос?
Cornel 15.12.2008 13:43:28
Нет. Какие действия вы хотите сделать / отменить?
Dirk Vollmar 15.12.2008 16:38:46
PS: Ваша тема теперь просто повторяет то, что уже было написано в первом предложении.
Dirk Vollmar 15.12.2008 16:39:25

Рассмотрим реализацию шаблона Command (GoF):

  • Поместите логику своих действий в классы, которые реализуют общий ICommand {Do (); Отменить ();} интерфейс.
  • При каждом пользовательском действии вы создаете объект запрошенной команды и инициализируете его параметрами контекста, такими как новое и старое имя файла.
  • Вызов Do (), положить объект в стек завершенных команд.
  • Каждая команда снабжена контекстом, поэтому, вызывая Undo (), она может отменить изменения.
  • Рассмотрите возможность перемещения файлов во временную папку вместо удаления.
7
15.12.2008 11:52:08