Для знающих большое количество команд

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
mefestofele
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 145
Зарегистрирован: 17.04.2004 (Сб) 22:46
Откуда: Россия Тольятти

Для знающих большое количество команд

Сообщение mefestofele » 13.06.2004 (Вс) 10:06

Команды FileCopy мне недостаточно
Необходимо производить копирование целых папок
И при этом желательно получать данные об этом (например, скопировано 83% или 372Mb)
Прошу не давать ссылки зайди на сайт … прочитай RFC …

Заранее спасибо
Да поможет тебе F1, Да сохранит тебя F2. Во имя ALT'a, SHIFT'a и свяятого DEL'a, ESC.

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2056
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 13.06.2004 (Вс) 10:55

Я думаю одной командой тебе не обойтись.

Скорее всего придётся делать так

1) Создать папку в новом месте.
2) Перетаскивать файло по одному.
3) Брать объём той папки из которой ты копируешь и сравнивать с объёмом уже скопированных файлов и находить проценнтное соотношение.

Вариантов реализации много - можешь через API можешь через FSO

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 13.06.2004 (Вс) 15:55

Есть функция SHFileoperation, которая всё показывает, а заодно выдаёт диалоги, если найден файл с таким же именем:

Public Type SHFILEOPSTRUCT
hwnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAborted As Boolean
hNameMaps As Long
sProgress As String
End Type
Public Const FO_DELETE = &H3
Public Const FO_COPY = &H2
Public Const FO_MOVE = &H1
Public Const FO_RENAME = &H4
Public Const FOF_ALLOWUNDO = &H40
Public Const FOF_CONFIRMMOUSE = &H2
Public Const FOF_FILESONLY = &H80 ' on *.*, do only files
Public Const FOF_MULTIDESTFILES = &H1
Public Const FOF_NOCONFIRMATION = &H10 ' Don't prompt the user.
Public Const FOF_NOCONFIRMMKDIR = &H200 ' don't confirm making any needed dirs
Public Const FOF_RENAMEONCOLLISION = &H8
Public Const FOF_SILENT = &H4 ' don't create progress/report
Public Const FOF_SIMPLEPROGRESS = &H100 ' means don't show names of files
Public Const FOF_WANTMAPPINGHANDLE = &H20 ' Fill in SHFILEOPSTRUCT.hNameMappings
Public Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

mefestofele
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 145
Зарегистрирован: 17.04.2004 (Сб) 22:46
Откуда: Россия Тольятти

Сообщение mefestofele » 15.06.2004 (Вт) 11:16

:cry: У меня не работает
:evil: Придирается ко всему подряд
:roll: Есть ещё варианты
Да поможет тебе F1, Да сохранит тебя F2. Во имя ALT'a, SHIFT'a и свяятого DEL'a, ESC.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 15.06.2004 (Вт) 13:22

Да нет - SHFileoperation нормально работает.
Посмотри примеры в интернете - там их много.

Только раз у меня затык с ней пролучился - не захотела копировать большое кол-во файлов (не по маске, а по списку) на одной из машин. Конечно, в той ситуации скорей всего что-то в операционке покорежено было, но там я просто заменил ее на FileCopy ибо разбираться в чем там дело совсем неохота было...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2056
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 15.06.2004 (Вт) 14:02

2 mefestofele: Замени везде Public на Private и всё будет работать. :wink: :!:

P.S Низзя Public в форму пихать. :)

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 15.06.2004 (Вт) 16:57

Возможные затруднения:

pfrom
pto

содержат списки файлов/каталогов, разделитель vbnullchar

Допускаются варианты:
а) весь список pfrom копируется в один каталог pto
б) один элемет prom в один элемент списка pto (с флагом FOF_MULTIDESTFILES )


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26

    TopList