Что нового

Копировать папку из ресурса

StarEdik

Новичок
Сообщения
365
Репутация
4
Версия AutoIt: 3.3.6.1

Описание:
Привет всем. Ребята прошу помощи :

Как папку C:\1С_копии со всеми файлами внутри (10-15 файлов)
1.Добавит в скрипт ( в ресурсы ехе )
2.И при нажатие кнопки скопировать ( перезаписывать )эту папку с файлами из ресурса в диск G:\

Спасибо большое.


Примечания:
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Заархивировать, а затем FileInstall().
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Код:
#AutoIt3Wrapper_Res_File_Add=file1.txt, rt_rcdata, FILE1
#AutoIt3Wrapper_Res_File_Add=file2.txt, rt_rcdata, FILE2
;.......

#include <Resources.au3>

GUICreate('TEST', 200, 200)
$Button1 = GUICtrlCreateButton('Save', 50, 100, 100, 25)
GUISetState()

Do
	If GUIGetMsg() = $Button1 Then
		_ResourceSaveToFile('G:\1C_Копии\file1.txt', 'FILE1', $RT_RCDATA)
		_ResourceSaveToFile('G:\1C_Копии\file2.txt', 'FILE2', $RT_RCDATA)
		;...........
	Endif
Until Guigetmsg() = -3
 
Автор
StarEdik

StarEdik

Новичок
Сообщения
365
Репутация
4
Yashied
Спасибо за быстрый ответ. А как это програмно выполнить.(разархивировать).
Zaramot
Привет и спасибо .
У меня в папке всегда около 10 копии разных файлов.как с этим справится.
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Код:
#AutoIt3Wrapper_Res_File_Add=file1.txt, rt_rcdata, FILE1 ;1)
#AutoIt3Wrapper_Res_File_Add=file2.txt, rt_rcdata, FILE2 ;2)
;.......
#AutoIt3Wrapper_Res_File_Add=file2.txt, rt_rcdata, FILE10 ;10)

#include <Resources.au3>

GUICreate('TEST', 200, 200)
$Button1 = GUICtrlCreateButton('Save', 50, 100, 100, 25)
GUISetState()

Do
    If GUIGetMsg() = $Button1 Then
        _ResourceSaveToFile('G:\1C_Копии\file1.txt', 'FILE1', $RT_RCDATA) ;1)
        _ResourceSaveToFile('G:\1C_Копии\file2.txt', 'FILE2', $RT_RCDATA) ;2)
        ;...........
        _ResourceSaveToFile('G:\1C_Копии\file10.txt', 'FILE10', $RT_RCDATA) ;10)
    Endif
Until Guigetmsg() = -3
 
Автор
StarEdik

StarEdik

Новичок
Сообщения
365
Репутация
4
Zaramot
:smile:Я так понял что, вы советуете каждый файл по отдельности добавлять в ресурсы а потом…Значит вместе никак. Понял.ОК.
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Заархивируй папку в ZIP архив и:
Код:
#AutoIt3Wrapper_Res_File_Add=путь к ZIP архиву, rt_rcdata, ZIP

#include <Resources.au3>
#include <Zip.au3>

GUICreate('TEST', 200, 200)
$Button1 = GUICtrlCreateButton('Save', 50, 100, 100, 25)
GUISetState()

Do
    If GUIGetMsg() = $Button1 Then
        _ResourceSaveToFile(@TempDir & '\1c.zip', 'ZIP', $RT_RCDATA) ;сохраняем архив из ресурса во временную папку
		_Zip_UnzipAll(@TempDir & '\1c.zip', 'G:\') ;разархивируем архив в диск G:\
		do
		Until FileExists('G:\1С_копии') ;Ждём пока архив разархивирует папку в диск G:\
		FileDelete(@TempDir & '\1c.zip') ;удаляем архив
		MsgBox(0, 'TEST', 'Папка скопированна')
		Exit
    Endif
Until Guigetmsg() = -3


1) Zip.au3 скачать можешь ТУТ
2) Resources.au3 скачать можешь ТУТ
 
Автор
StarEdik

StarEdik

Новичок
Сообщения
365
Репутация
4


Добавлено:
Сообщение автоматически объединено:

Zaramot
Скачал Zip.au3.Сейчас проверим.А там сперва папку с этим именем нужно создавать или нет.А то с предидушим скриптом что та не получается
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
В архиве папка должна иметь название: 1С_копии
 
Автор
StarEdik

StarEdik

Новичок
Сообщения
365
Репутация
4
Zaramot
Значит так. В G:\ пришлось самому создать папку с именем « 1С_копии ».После этого скрипт запустился на выполнение.Он скопировал 1c.zip из ресурса в C:\Temp ,создал там скрытую папку с именем « Временная папка 1 для 1c.zip» или разархивировал зип папку туда.Потом в G:\ создал папку с именем «1c» с файлами.После удалил из C:\Temp 1c.zip
Но не удалил созданную там временную папку внутри которго папка «1с» с файлами.А папка созанная мной как был пустым так и остался.Можно как то исправить это? За ранее благодарю Yashied за идею , а вас за скрипт .Спасибо.
(с файлами .7z ничего не получается. файл 1с.7z он скопировал в C:\Temp но не смог разархивировать-выдал ощибку.)


Добавлено:
Сообщение автоматически объединено:

Zaramot [?]
В архиве папка должна иметь название: 1С_копии
Ну тепер ясно :smile:
 
Автор
StarEdik

StarEdik

Новичок
Сообщения
365
Репутация
4
Zaramot
Рано или поздно получится. :smile:
Заново заархивировал.Тепер внутри 1c.zip-а лежит папка с именем 1С_копии. Тепер то сразу выполняется действие а иной раз приходится 2 -3 раза нажимать на кнопку Save чтоб выполнялся скрипт.А когда я сам создавал папку 1С_копии сразу выполнялось действие. :-[



Добавлено:
Сообщение автоматически объединено:

Zaramot
Создал в G:\ 1С_копии. Запустил.Сразу выдал инфу о « подтверждение замены папки ». Может сперва создадим в G:\1С_копии а потом эти действи
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Заархевируй только файлы из папки C:\1С_копии в ZIP архив и:
Код:
#AutoIt3Wrapper_Res_File_Add=путь к ZIP архиву, rt_rcdata, ZIP

#include <Resources.au3>
#include <Zip.au3>

GUICreate('TEST', 200, 200)
$Button1 = GUICtrlCreateButton('Save', 50, 100, 100, 25)
GUISetState()

Do
    If GUIGetMsg() = $Button1 Then
        _ResourceSaveToFile(@TempDir & '\1c.zip', 'ZIP', $RT_RCDATA) ;сохраняем архив из ресурса во временную папку
		Do
		Until FileExists(@TempDir & '\1c.zip') ;ждём пока скопируится архив во временную папку
        _Zip_UnzipAll(@TempDir & '\1c.zip', 'G:\1С_копии\') ;разархивируем архив в диск G:\1С_копии
        do
        Until FileExists('G:\1С_копии') ;Ждём пока архив разархивирует папку в диск G:\
        FileDelete(@TempDir & '\1c.zip') ;удаляем архив
        MsgBox(0, 'TEST', 'Папка скопированна')
        Exit
    Endif
Until Guigetmsg() = -3
 
Автор
StarEdik

StarEdik

Новичок
Сообщения
365
Репутация
4
Zaramot
Заархевируй только файлы из папки C:\1С_копии в ZIP архив и

А почему только оттуда?

Проверил .Всё ОК.Вот только он там 2 вложенные папки с одинаковым именем создает ( G:\1С_копии \1С_копии )


Добавлено:
Сообщение автоматически объединено:
 
Верх