autosave

Автор Тема: autosave  (Прочитано 23825 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: autosave
« Ответ #30 : 29-05-2015, 13:30:58 »
а как гарантированно получить имя сохраненного резервного файла?

удали из кода это:
Код - C# [Выбрать]
  1. private Boolean savingMarker = true;
и это:
Код - C# [Выбрать]
  1. if (savingMarker = !savingMarker)
  2.         return;
Затем замени это:
Код - C# [Выбрать]
  1. db.SaveAs(fullName, DwgVersion.Current);
на это:
Код - C# [Выбрать]
  1. File.Copy(doc.Name, sb.ToString()); // второй параметр как раз и содержит имя, о котором спрашиваешь.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: autosave
« Ответ #31 : 29-05-2015, 13:46:03 »
Вообще-то имя сохранённого файла будет e.FileName. В случае AutoSave оно будет отличаться от doc.Name
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов ДмитрийАвтор темы

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Re: autosave
« Ответ #32 : 29-05-2015, 13:54:19 »
File.Copy(doc.Name, sb.ToString()); // второй параметр как раз и содержит имя, о котором спрашиваешь.

не понял, зачем копировать текущий файл чертежа?

Допишу тогда про автосейв и его логику работы:
Есть файл чертежа, с которым работают например:
test.dwg
Когда срабатывает автосохранение, оно создает другой файл в папке автосохранений:
test_1_1_1191.sv$
При этом test.dwg не обновляется весь день.(100% юзеров не заставить нажимать сохранить, это читсто их желание, с которым даже не стоит бороться)

Через заданные промежутки времени автосейв заменяет файл test_1_1_1191.sv$.

Если автокад глюкнет, то test.dwg останется такой-же, как во время запуска и восстановление пойдет из test_1_1_1191.sv$. на момент последнего автосейва

Если нажать сохранить файл, то обновиться test.dwg и удалиться test_1_1_1191.sv$.

Если в конце дня пользователь не нажал "_qsave" и вышел, отказавшись от сохранения, то test.dwg будет неизменным как при запуске, а файл test_1_1_1191.sv$ будет удален, т.е. информация полностью потеряется!.

Если сработало автосохранение, после которого пользователь нажал "_qsave", то файл test_1_1_1191.sv$ удалиться, а test.dwg обновиться. Но при этом если до следующего автосейва произойдет глюк с test.dwg и автокадом, то мы потеряем и test_1_1_1191.sv$ и test.dwg

Т.е. нужно именно в момент сохранения. (Тут не важно, юзер или автосейв сохранил), сделать копию, ничего не затирая.


Оффлайн Doublefish

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
Re: autosave
« Ответ #33 : 29-05-2015, 14:01:04 »
Я вот подумал, почему мне не понадобилось так делать bak файлы на 2-3 дня - потому что  файлы за предыдущие дни можно восстановить из ночного бекапа, а если документы в системе электронного документооборота, то и за несколько месяцев можно восстановить + определенная папка с баками на локальных компах. Как показала практика обычно файлы восставливась из папки баков номально если была нажата кнопка сохранить в автокаде. Но были пользователи которые  целый день работали и ни разу не нажали сохранить - максимум что можно потерять это один день в этом случае, но это уже совсем единичные случаи были (1 раз в несколько лет всречалось).

У вас прямо онлайн проектирование идет что ли с необходимостью не потерять и 10 минут?

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: autosave
« Ответ #34 : 29-05-2015, 14:04:44 »
У вас прямо онлайн проектирование идет что ли с необходимостью не потерять и 10 минут?
Бэкап делается один раз ночью. Если под конец рабочего дня у юзера повреждается файл, то у твоего пользователя работа целого дня идёт насмарку. Именно в виду этой проблемы (прежде всего) я и написал своё решение.

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Re: autosave
« Ответ #35 : 29-05-2015, 14:10:30 »
Вообще-то имя сохранённого файла будет e.FileName. В случае AutoSave оно будет отличаться от doc.Name
Я показывал вариант, когда очередное сохранение не затирает предыдущие. Для этого генерировал новое имя на основе даты и времени.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: autosave
« Ответ #36 : 29-05-2015, 14:13:33 »
Я показывал вариант, когда очередное сохранение не затирает предыдущие. Для этого генерировал новое имя на основе даты и времени.
Я не об этом, а о том в какое имя файла произошло сохранение. В случае автосохранения e.Filename содержит что-то типа "test_1_1_1191.sv$" (если мне не изменяет память). И именно этот файл, а не doc.Name нужно копировать (файл doc.Name не изменился если e.Filename != doc.Name)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов ДмитрийАвтор темы

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Re: autosave
« Ответ #37 : 29-05-2015, 14:19:18 »
максимум что можно потерять это один день в этом случае, но это уже совсем единичные случаи были (1 раз в несколько лет всречалось)
1 день это непозволительная роскошь, когда счет сдачи проекта идет на часы и нет времени на исправления!
Цена 1 дня может быть судебные издержки, потеря заказчика, задержка выплат и т.д.
Для ИТ это жалоба бабушки директору, на то, то автокад неправильно настроен! То что в конце рабочего дня утомленной бабушкой не нажата клавиша и автокад сам удалил файл автосохранения, это никого не волнует. Можно долго спорить кто виноват, но скорее всего была и есть возможность сделать систему стабильнее и менее зависимой от человеческого фактора, и этим нужно воспользоваться.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: autosave
« Ответ #38 : 29-05-2015, 14:34:07 »
isavepercent установить в 0 или 100, а не в 50 - не то?
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: autosave
« Ответ #39 : 29-05-2015, 14:37:58 »
isavepercent установить в 0 или 100, а не в 50 - и всех делов.
Это необходимое, но недостаточное условие для того, чтобы не потерять файл. :)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: autosave
« Ответ #40 : 29-05-2015, 14:38:55 »
У меня ощущение, что установка этой переменной снимет не меньше половины головной боли "ай-яй-яй, ничего не сохранилось, восстанавливайте как хотите" ;)
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Doublefish

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
Re: autosave
« Ответ #41 : 29-05-2015, 14:49:31 »
Кстате у нас ISAVEPERCENT у всех стоит = 0 и я не смог вспомнить ни одного случая за последние 5 лет чтобы из bak файла не удалось восстановить файл.

Оффлайн Привалов ДмитрийАвтор темы

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Re: autosave
« Ответ #42 : 29-05-2015, 14:51:56 »
чтобы из bak файла не удалось восстановить файл
Не охота включать создание bak файлов. Это сильно упрощает задачу восстановления, но ведет к дублированию информации на рабочих компьютерах и сетевых хранилищах.

Оффлайн Doublefish

  • ADN Club
  • ****
  • Сообщений: 288
  • Карма: 10
  • AutoCAD Civil 3D
Re: autosave
« Ответ #43 : 29-05-2015, 14:55:15 »
Эээ, в смысле у вас у всех пользователей снята галочка Создавать резервные копии ?

Оффлайн Привалов ДмитрийАвтор темы

  • ADN Club
  • *****
  • Сообщений: 533
  • Карма: 117
Re: autosave
« Ответ #44 : 29-05-2015, 14:59:20 »
чка Создавать резервные копии ?
У кого как. Пользователи ее сами могут убрать, т.к. некоторых бесит создание левых файлов. А в случае восстановления бегут к нам.
Смешивать рабочую информацию с резервной, которая мешает все время при проектировании, поиске файлов, операциях копирования и т.д. и нужна только в исключительных случаях, более чем странное решение Autodesk.