Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > копирование папки


Автор: Domain 30.4.2010, 10:21
есть код для копирование папок и подкаталогов в них(вместе со вложенными файлами)
Код

void CopyDirectory (AnsiString Src, AnsiString Dest)
{
  TSearchRec sr;
  if (FindFirst(Src+"\\*", faAnyFile, sr) == 0)
     {
       do
         {
           if (sr.Attr & faDirectory) // directory
              {
                if (sr.Name!=".")
                if (sr.Name!="..")
                   {
                     AnsiString SubFld = Src+"\\"+sr.Name;
                     if (!DirectoryExists(Dest+"\\"+ sr.Name))
                         CreateDir(Dest+"\\"+ sr.Name);
                     CopyDirectory (SubFld, Dest+"\\"+ sr.Name);
                   }
              }
           else // file
              {
                if (sr.Name!=".")
                if (sr.Name!="..")
                   {
                     AnsiString OldName = Src+"\\"+ sr.Name;
                     AnsiString NewName = Dest+"\\"+ sr.Name;
                     CopyFile(OldName.c_str(), NewName.c_str(), TRUE);
                   }
              }
          } while (FindNext(sr) == 0);
    FindClose(sr);
  }
}


как сделать так чтобы в например в TLabel отражалось имя копируемого файла и процесс копирование текущего файла отображался в TProgressBar? 

Автор: xvr 30.4.2010, 11:09
Цитата(Domain @  30.4.2010,  10:21 Найти цитируемый пост)
как сделать так чтобы в например в TLabel отражалось имя копируемого файла
Перед CopyFile вставить 
Код

Label->Caption=OldName;
Label->Repaint();

Цитата

процесс копирование текущего файла отображался в TProgressBar?  
Заменить CopyFile на http://msdn.microsoft.com/en-us/library/aa363852%28VS.85%29.aspxи подать ей progress routine (3й параметр lpProgressRoutine)


Автор: Domain 30.4.2010, 11:23
спасибо. ща попробую.

Автор: Domain 30.4.2010, 11:57
CopyFileEx(OldName.c_str(), NewName.c_str(), lpProgressRoutine,NULL,TRUE,COPY_FILE_OPEN_SOURCE_FOR_WRIT); не работает . в чем проблема. а что должно быть в lpProgressRoutine. это типа переменная, которая будет меняться по ходу или что?

Автор: xvr 30.4.2010, 16:09
Цитата(Domain @  30.4.2010,  11:57 Найти цитируемый пост)
а что должно быть в lpProgressRoutine
Это указатель на функцию, которая будет вызываться в процессе копирования. Смотреть http://msdn.microsoft.com/en-us/library/aa363854%28v=VS.85%29.aspx


Автор: SerK 1.5.2010, 09:40
Посмотри здесь, может поможет:

http://www.dudarik.wallst.ru/dudarikfiles/php/htm_temples/treashdelfile.php

Автор: Domain 3.5.2010, 11:52
все равно не доганяю как это сделать. если кто делал, киньте рабочий код.  smile 

Автор: smoke_man 3.5.2010, 17:19
Посмотри http://forum.vingrad.ru/forum/topic-267768.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)