C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Функция CopyFile, Проблемы с функцией CopyFile
Dark Elf
  Отправлено: 16.09.2003, 09:27


Не зарегистрирован







Уважаемые господа!

У меня почему-то не хочет работать функция CopyFile (код прилагается)
Напишите пожалуйста в чём дело. Заранее благодарен за ответ.
for (index = 1;index <= IntToStr(NMPOP31->MailCount);index++)
{
tempdir = NMPOP31->AttachFilePath;
SetCurrentDir(tempdir);
CreateDir(GetCurrentDir() + "\\Temp");
NMPOP31->AttachFilePath = GetCurrentDir() + "\\Temp";
NMPOP31->GetMailMessage(index);
attachment = NMPOP31->MailMessage->Attachments->Text;
SetCurrentDir(GetCurrentDir() + "\\Temp");
oldfilename = GetCurrentDir() + "\\" + attachment;
newfilename = tempdir + "\\"+ attachment;
CopyFile(oldfilename.c_str(),newfilename.c_str(),false);
Edit5->Text = oldfilename.c_str();
Edit6->Text = newfilename.c_str();
//CopyFile("text.tmp","..\\text.tmp",false); — это работает!!!
DeleteFile(oldfilename);
SetCurrentDir(tempdir);
RemoveDir("Temp");
fwrite(attachment.c_str(),strlen(attachment.c_str()),1,base);
NMPOP31->AttachFilePath = tempdir;
}
Гость_pasha
Отправлено: 16.09.2003, 12:35


Не зарегистрирован







CODE

// проверьте что у Вас в путях (правильные корректные или нет):

  oldfilename = GetCurrentDir() + "\\" + attachment;
  newfilename = tempdir + "\\"+ attachment;

  ShowMessage(oldfilename);
  ShowMessage(newfilename);

  CopyFile(oldfilename.c_str(),newfilename.c_str(),false);



и какую функцию CopyFile Вы используете:
из FileUtil или winbase.h

если из FileUtil.hpp то она:

extern PACKAGE void __fastcall CopyFile(const AnsiString FileName, const AnsiString DestName, Controls::TControl* ProgressControl);

Guest
Отправлено: 16.09.2003, 12:52


Не зарегистрирован







А где взять этот FileUtil.hpp? У меня при полной исталляции Билдера такой файл не находится
Admin
Отправлено: 16.09.2003, 15:43


Владимир

Группа: Администратор
Сообщений: 1190



Да, это файл ( FileUtil.hpp ) из библиотеки RXLib
и функция

extern PACKAGE void __fastcall CopyFile(const AnsiString FileName, const AnsiString DestName, Controls::TControl* ProgressControl);

из этой библиотеки.

----

Можете или установить эту библиотеку или использовать
стандартную из winbase.h , как и написал Гость_pasha
проверьте пути.

CODE

// проверьте что у Вас в путях (правильные корректные или нет):

 oldfilename = GetCurrentDir() + "\\" + attachment;
 newfilename = tempdir + "\\"+ attachment;

 ShowMessage(oldfilename);  // что получилось здесь !!!
 ShowMessage(newfilename); // и здесь !!!

 CopyFile(oldfilename.c_str(),newfilename.c_str(),false);



например в examples есть такой пример:


CODE

void __fastcall CopyFile(AnsiString FileName,AnsiString DestName)
{
 bool   ckcopy;
 AnsiString Destination;
 char   FName[255];

 GetFileTitle(FileName.c_str(),FName,255);
 Destination = ExpandFileName(DestName);

 if(HasAttr(Destination,faDirectory))
   Destination=Destination+FName;

 ckcopy= CopyFile(FileName.c_str(),Destination.c_str(),false);

 if(!ckcopy)
   ShowMessage("Please give the destination filename");

}

// (C:\Program Files\Borland\CBuilder6\Examples\Doc\Filmanex\fmxutils.cpp)




Вернуться в Вопросы программирования в C++Builder