Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Задача с виду проста - нужно скопировать сразу всю папку из папки А в папку В и чтобы это было не намного медленнее копирования в ручную. NB умеет копировать только по файлам. В теории можно делать списки того, что в папке и копировать, но а если внутри файлов сотни, а папок десятки... то NB будет это делать довольно долго + сам алгоритм по идее сложный довольно-таки выходит. Ну и полоску, показывающую сколько скопировано в идеале хочется иметь, т.к. папки могут весить более 1Гб.
Имеется ли на это простое решение? Может плагин какой? Что-то ничего подходящего я не нашел...
{NeoBook Function} Version=5,60 Language=NeoBook Comment=Данная функция копирует выбранную папку с любой вложенностью файлов! Param=[%folder_start]|Text|Что копировать (укажите путь папки!) Param=[%folder_end]|Text|Куда копировать (укажите путь папки!) {End} . ___________________________________________________________ . .| |. .| Функция для копирования папки с любой вложенностью файлов |. .|___________________________________________________________|. . . .Извлекаем имя копируемой папки из ее пути: StrParse "[%folder_start]" "\" "[part_path-]" "[kolvo_part]" .Создаем копируемою папку по новому пути: CreateFolder "[%folder_end]\[part_path-[kolvo_part]]" .================================================ . .Считываем все файлы из копируемой папки в переменную: FileList "[%folder_start]\*.*" "Files" "[file_list]" .Если они существуют, If "[file_list]" "<>" "" ...то заносим имена файлов в массив: StrParse "[file_list]" "[#13]" "[file-]" "[kolvo_files]" .Копируем файлы: Loop "1" "[kolvo_files]" "[N_loop_files]" .FileCopy "[%folder_start]\[file-[N_loop_files]]" "[%folder_end]\[part_path-[kolvo_part]]\[file-[N_loop_files]]" EndLoop EndIf .================================================ . .Считываем все папки из копируемой папки в переменную: FileList "[%folder_start]\*.*" "Folders" "[folder_list]" .Если они существуют, If "[folder_list]" "<>" "" ...то заносим все папки в массив: StrParse "[folder_list]" "[#13]" "[folder-]" "[kolvo_folders]" .Запускаем эту функцию еще раз, передавая ей новые имена папок для копирования по очереди: Loop "1" "[kolvo_folders]" "[N_loop_folders]" Call "Copy Folder" "[%folder_start]\[folder-[N_loop_folders]]" "[%folder_end]\[part_path-[kolvo_part]]" EndLoop ...Иначе возвращаем имя папки: Else SetVar "[kolvo_part]" "[kolvo_part]-1" EndIf
как создать функцию надеюсь знаешь. Но если размер более Гб., то лучше плаг например NeoDouble тут на форуме есть, либо функцию на вбс
Сообщение отредактировано Сергей - Пт, 18 Марта 2011, 15:12
Запустил неглядя... и не работает. Скопировало только папки, причем не все.
Добавлено (18 Март 2011, 15:56) --------------------------------------------- Убрал точечку, которая блокировала копирование файлов. Всё замечательно, работает, но есть одно но - из папки, из которой копируем, копирует только самую первую папку, игнорируя остальные.
Я ж его переводил. npCopiarCarpeta Скопировать папку и все ее содержимое. npCopiarArchivos Копирует один или несколько файлов в указанную папку. Не хочешь читать хелп?
Добавлено (18 Март 2011, 22:36) --------------------------------------------- Хотя учитывая что на rg с последней скачки файл хранится не более 30-ти дней не надеюсь уже скачать перевод...
Сергей, а функция "Copy Folder" у тебя осталась? NeoDouble не предлагать...npCopiarCarpeta работает через раз, или вообще не работает или какую то альтернативу для копирования папок с подпапками. заранее спасибо.
Добавлено (09 Октябрь 2011, 19:38) --------------------------------------------- От блин... уже не нужно... Команда немного придирчивая, но всё получилось.
Win7 Pro SP1 x64; NBv5.5.4rus,v5.6.2rus, v5.7.0en, Opera
она, я потом увидел, торможу уже. Блин режим сбил с одним большим заказам, пытаюсь восстановить, принял сонники
Добавлено (09 Октябрь 2011, 21:17) --------------------------------------------- А у Петра в плаге разве нету копирование папки?!
Добавлено (09 Октябрь 2011, 21:20) ---------------------------------------------
Можно сделать так, использовать команду в плаге (где поиск ) создастся список, потом по этому списку (предварительно заменить название начальной папки на нужное) сделать копирование
В смысле вызывает рекурсивно саму себя? Надо было хоть написать что функцию нужно назвать "Copy Folder" , я думал что вызываем другую функцию... Cпасибо, буду пробовать.C NeoDouble тоже разобрался, ну не хотела она читать лишние символы прямой и обратный слеш \ / в конце, хоть тресни, я только позже это понял. Win7 Pro SP1 x64; NBv5.5.4rus,v5.6.2rus, v5.7.0en, Opera
Сообщение отредактировано Gorezcaid - Вс, 09 Октября 2011, 22:01
NeoDouble не предлагать...npCopiarCarpeta работает через раз, или вообще не работает или какую то альтернативу для копирования папок с подпапками. заранее спасибо.