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)
|
|
|
|