Автор Тема: [Баг] Зависание процесса при функции DirCopy  (Прочитано 17919 раз)

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

Оффлайн Andrey_A [?]

  • Новичок
  • *
  • Сообщений: 100
  • Репутация: 3
  • Пол: Мужской
    • TC IMAGE & GROPE
    • Награды
Обнаружился баг в функции DirCopy
В папке E:\15_1 находится 90.000 файлов, все файлы весят 2,5 Gb
Цель скопировать папку E:\15_1 в C:\1\15_1
Но процесс висит. Прождал час, результата нет.
Версия Autoit 3.3.14.0

Код: AutoIt [Выделить]
$hTimer=TimerInit()
$itog=DirCopy('E:\15_1','C:\1\15_1',1)
$iDiff=TimerDiff($hTimer)
MsgBox(4096,"Переменная ","$itog =>" & $itog & "<=" & @CRLF & "$iDiff =>" & $iDiff & "<=")


Total Commander, TeraCopy... справляются с копированием такой папки за 5-7 минут.

Русское сообщество AutoIt

[Баг] Зависание процесса при функции DirCopy
« Отправлен: Октябрь 10, 2015, 13:16:17 »

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2573
  • Репутация: 441
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: [Баг] Зависание процесса при функции DirCopy
« Ответ #1, Отправлен: Октябрь 10, 2015, 13:34:57 »
Использовать пользовательские функции копирования. На форуме есть примеры
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Оффлайн Andrey_A [?]

  • Новичок
  • *
  • Сообщений: 100

  • Автор темы
  • Репутация: 3
  • Пол: Мужской
    • TC IMAGE & GROPE
    • Награды
Re: [Баг] Зависание процесса при функции DirCopy
« Ответ #2, Отправлен: Октябрь 10, 2015, 13:49:18 »
joiner  [?]
Цитировать
На форуме есть примеры
1. Можно ли ссылки на подобные примеры, в поиск, что только не вводил, нет нужного результата.
2. Можно ли надеяться на то, что этот баг будет исправлен авторами Autoit?
« Последнее редактирование: Октябрь 10, 2015, 14:09:48 от Andrey_A »

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2573
  • Репутация: 441
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0

Русское сообщество AutoIt

Re: [Баг] Зависание процесса при функции DirCopy
« Ответ #3 Отправлен: Октябрь 10, 2015, 14:27:44 »

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3999
  • Репутация: 960
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0

Скорблю и помню.




Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379
  • Репутация: 2694
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: [Баг] Зависание процесса при функции DirCopy
« Ответ #5, Отправлен: Октябрь 10, 2015, 14:32:19 »
Самый простой способ - xcopy.

P.S

Garrett, ссылка нерабочая.


Думай, прежде чем говорить.

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3647
  • Репутация: 967
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Баг] Зависание процесса при функции DirCopy
« Ответ #6, Отправлен: Октябрь 10, 2015, 14:51:55 »
Andrey_A
Цитировать
этот баг будет исправлен
Чтобы исправить ошибку, её нужно воспроизвести. У меня на Win7x86, Autoit 3.3.14.2, C:\ и E:\ на одном диске этот скрипт выполняется нормально
(нажмите для показа/скрытия)
Время выполнения всего скрипта (с отключённым антивирусом ;) ) по данным SciTE Time: 369.2. Процесс копирования можно отслеживать в проводнике.

Оффлайн Andrey_A [?]

  • Новичок
  • *
  • Сообщений: 100

  • Автор темы
  • Репутация: 3
  • Пол: Мужской
    • TC IMAGE & GROPE
    • Награды
Re: [Баг] Зависание процесса при функции DirCopy
« Ответ #7, Отправлен: Октябрь 10, 2015, 15:15:42 »
InnI, вновь созданные файлы копируются. У меня Win7x64.
Но вот папка http://rghost.ru/private/7zDhzwJJJ/ccdfc50aad48c9d46f4ec2d2a41c62a4 , которая не хочет копироваться.

-------- Добавлено --------------
InnI, замените в вашем коде расширение zzz на html и уже не работает копирование папки. Странность какая-то...


-------- Добавлено --------------
Функция DirMove() тоже ведёт к той же ситуации. Процесс висит - перемещение не происходит...
« Последнее редактирование: Октябрь 10, 2015, 16:31:53 от Andrey_A »

Русское сообщество AutoIt

Re: [Баг] Зависание процесса при функции DirCopy
« Ответ #7 Отправлен: Октябрь 10, 2015, 15:15:42 »

Оффлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3647
  • Репутация: 967
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Баг] Зависание процесса при функции DirCopy
« Ответ #8, Отправлен: Октябрь 10, 2015, 17:02:46 »
Andrey_A
Цитировать
Странность какая-то...
Да, странность есть и она, похоже, системная.
Если оставить примерно 5000 html-фалов и скопировать, то у AutoIt это займёт чуть больше минуты. Теперь открываем эту папку в проводнике, выделяем все html-файлы и удаляем. На "подготовку к удалению" у проводника уйдёт тоже больше минуты. А теперь очистим корзину. Время очистки составит три(!) минуты. Причём эти проблемы наблюдаются только с расширениями htm и html. Пробовал другие расширения: txt, xml, mht, zzz - проблем нет - всё копируется и удаляется быстро.
« Последнее редактирование: Октябрь 10, 2015, 17:11:03 от InnI »

Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379
  • Репутация: 2694
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: [Баг] Зависание процесса при функции DirCopy
« Ответ #9, Отправлен: Октябрь 10, 2015, 17:15:35 »
Скорее всего в реестре на .html файлы висит какой-то обработчик, удалите его, и будет все хорошо.


Добавлено: Октябрь 10, 2015, 17:20:52
Попробуйте удалить вот это:

HKEY_CLASSES_ROOT\htmlfile\shellex\{8895B1C6-B41F-4C1C-A562-0D564250836F}
« Последнее редактирование: Октябрь 10, 2015, 17:20:52 от Yashied, Причина: Объединение сообщений »

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2573
  • Репутация: 441
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: [Баг] Зависание процесса при функции DirCopy
« Ответ #10, Отправлен: Октябрь 10, 2015, 23:59:49 »
удалять что-то в реестре ради копирования это, извините меня, глюк.
использовал пример InnI с заменой на html, но копировал своей функцией. время копирования - 3 мин. 30 сек.
думаю, что стоит уведомить разрабов языка о таком глюке функции DirCopy

Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379
  • Репутация: 2694
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: [Баг] Зависание процесса при функции DirCopy
« Ответ #11, Отправлен: Октябрь 11, 2015, 07:38:11 »
Я пока не вижу никакого глюка со стороны AutoIt. Как написал Innl, в проводнике Windows наблюдается такая же "аномальная" ситуация.

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2573
  • Репутация: 441
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: [Баг] Зависание процесса при функции DirCopy
« Ответ #12, Отправлен: Октябрь 11, 2015, 08:46:52 »
я могу понять, что системные службы могут производить какие-то там дополнительные действия с файлами, из-за чего вот такие косяки с удалением и копированием. но причем тут нативные? если нативная работает как системная, то преимущества никакого.
Пофайловое копирование делает ненужными нативные функции копирования(перемещения). ну разве что для десятка файлов средней величины

Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379
  • Репутация: 2694
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Re: [Баг] Зависание процесса при функции DirCopy
« Ответ #13, Отправлен: Октябрь 11, 2015, 09:32:54 »
Но причем тут нативные?
Это к чему?

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2573
  • Репутация: 441
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: [Баг] Зависание процесса при функции DirCopy
« Ответ #14, Отправлен: Октябрь 11, 2015, 09:51:15 »
Yashied  [?]
Цитировать
Это к чему?
я высказал свое мнение насчет нативной функции DirCopy(плюсом к ней можно отнести DirRemove  и DirMove). Может стоит спросить у разрабов почему такие зависания и можно ли что то сделать с этим.Раз уж тему такую подняли
К тому же, у ТС копирование папки вообще не произошло, что говорит, если не о баге, то о крайне неудовлетворительной работе функции(хотя не скопировать за час ни одного файла это уже баг)
« Последнее редактирование: Октябрь 11, 2015, 09:58:07 от joiner »

Русское сообщество AutoIt

Re: [Баг] Зависание процесса при функции DirCopy
« Ответ #14 Отправлен: Октябрь 11, 2015, 09:51:15 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
11 Ответов
6686 Просмотров
Последний ответ Ноябрь 06, 2009, 12:35:10
от amel27
5 Ответов
4112 Просмотров
Последний ответ Август 04, 2010, 14:24:15
от SyDr
8 Ответов
4138 Просмотров
Последний ответ Август 13, 2010, 22:35:26
от CreatoR
3 Ответов
3841 Просмотров
Последний ответ Ноябрь 25, 2010, 12:47:09
от beaver
3 Ответов
4642 Просмотров
Последний ответ Август 01, 2011, 15:47:34
от snoitaleR
6 Ответов
3991 Просмотров
Последний ответ Август 14, 2011, 00:27:49
от madmasles
10 Ответов
6956 Просмотров
Последний ответ Октябрь 26, 2011, 09:55:30
от Yashied
11 Ответов
4335 Просмотров
Последний ответ Ноябрь 02, 2011, 01:30:29
от AZJIO
0 Ответов
1354 Просмотров
Последний ответ Май 25, 2013, 22:21:45
от Gzzk
3 Ответов
2065 Просмотров
Последний ответ Февраль 20, 2014, 00:34:19
от Shinoby