Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
копирование папок (с++/с) |

17.04.2007, 09:51
|
|
Новичок
Регистрация: 15.04.2007
Сообщений: 6
Провел на форуме: 30802
Репутация:
3
|
|
копирование папок (с++/с)
ПОЖАЛУЙСТА кому не лень то подскажите как копировать папки в с++/с , мне понятно что с помощью функции винапи,но реализовать неполучается.....,а нада очень очень)))
или так,тот кто мне поможет получит семизнак!
Х8y-xy5-1
заранее благодарен!!!
[Great]: Учись темы называть. В след. раз минус
Последний раз редактировалось _Great_; 25.04.2007 в 09:10..
|
|
|

17.04.2007, 11:45
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
http://msdn2.microsoft.com/en-us/library/ms647743.aspx
Это если тебе окно с индикатором копирования не будет мешать))
Иначе придётся рекурсивно копировать каждый файл из директории и каждой поддиректории. (FindFirstFile, FindNextFile, FindClose, CopyFile)
Семизнак не нужен.
|
|
|

23.04.2007, 15:45
|
|
Новичок
Регистрация: 15.04.2007
Сообщений: 6
Провел на форуме: 30802
Репутация:
3
|
|
так,ребята нада помощь.нада пример копирования папки на языке с++.
что можно взамен дать за это??
очень просто нада.
|
|
|

23.04.2007, 16:18
|
|
Постоянный
Регистрация: 14.05.2006
Сообщений: 334
Провел на форуме: 1543521
Репутация:
272
|
|
блииин чувак, ну тебе же дали ссылку на функцию. Вот, что я замутил за 10 минут:
Код:
int CopyFiles(char* source,char* target)
{
SHFILEOPSTRUCT cf;
cf.hwnd=NULL;
cf.wFunc=FO_COPY;
cf.pFrom=source;
cf.pTo=target;
cf.fFlags=FOF_NOCONFIRMMKDIR;
if(SHFileOperation(&cf))return 1;else return 0;
}
Семь строчек кода и все. Использовать так:
тебе надо скопировать папку c:\1\ в d:\1\, вызываешь вот так:
Код:
CopyFiles("c:\\1\\*","d:\\1\\");
P.S. А чтобы копировалось незаметно надо добавить одну строчку и все. В той ссылке, что тебе дал hidden все прекрасно описано как сделать это и не только. Юзай MSDN
Последний раз редактировалось je0n; 23.04.2007 в 16:21..
|
|
|

23.04.2007, 16:37
|
|
Новичок
Регистрация: 15.04.2007
Сообщений: 6
Провел на форуме: 30802
Репутация:
3
|
|
а шоб както на фтп? примерно на 10.0.0.1 (понятно что локальное)
пожалуйста , может чемто смогу отблагодарить
|
|
|

23.04.2007, 16:40
|
|
Постоянный
Регистрация: 14.05.2006
Сообщений: 334
Провел на форуме: 1543521
Репутация:
272
|
|
пффффф, а сразу че не говорил?
это уже вообще другой вопрос. Могу тебе предложить изучить протокол фтп и юзать сокеты. Хотя может есть варианты и полегче. Но полюбас это уже не 7 строчек.
|
|
|

23.04.2007, 16:43
|
|
Новичок
Регистрация: 15.04.2007
Сообщений: 6
Провел на форуме: 30802
Репутация:
3
|
|
ЭТО плохо. другой вопрос?если какаято команда в кмд,которая скрывает окошко консоли?
|
|
|

23.04.2007, 17:03
|
|
Постоянный
Регистрация: 14.05.2006
Сообщений: 334
Провел на форуме: 1543521
Репутация:
272
|
|
не знаю можно ли скрыть cmd (точно можно, но хз как), но есть функция ShellExecute()
Вот ей можешь выполнять теже комманды что и в cmd в скрытом режиме. Как не знаю, ей не пользовался. Только что вот запустил ей блокнот:
Код:
ShellExecute(hwnd,"open","c:\\windows\\notepad.exe","","",SW_NORMAL);
В MSDN написано, там есть скрытый режим. Так что думаю можно юзать стандартного виндового фтп клиента с помощью этой функции не заметно.
|
|
|

23.04.2007, 17:36
|
|
Участник форума
Регистрация: 04.11.2006
Сообщений: 150
Провел на форуме: 1174659
Репутация:
175
|
|
Сообщение от je0n
тил ей блокнот:
Код:
ShellExecute(hwnd,"open","c:\\windows\\notepad.exe","","",SW_NORMAL);
так плохо- результат не вернётся, чтобы результат посмотреть(правда в ущерб асинхронности), стоит делать через пайпы
Код:
std::string Shell(std::string cmd)
{
FILE *pf;
if( (pf = _popen(cmd.c_str(), "rt")) == NULL )
throw std::runtime_error("_popen error");
std::vector<char> buf(4097);
std::string ret;
for(;;){
char* str = fgets(&buf[0], int(buf.size()) - 1, pf);
if(!str) break;
Decode_DOS_to_Win(&buf[0]);
ret += std::string(&buf[0]);
}
_pclose(pf);
return ret;
}
|
|
|

23.04.2007, 20:28
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
А если через апи захочешь делать, тут есть все примеры, для поиска, получения и закачки файлов на фтп, причём как-раз на С++
http://msdn2.microsoft.com/en-us/library/aa384180.aspx
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|