Форум: "Основная";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];
ВнизКопирование файлов Найти похожие ветки
← →
Dark Elf (2003-09-15 15:10) [0]Уважаемые мастера!
Как из программы на Delphi скопировать файл в вышестоящую директорию (например из C:\TEXT\TEMP в C:\TEXT)?
Заранее благодарен за ответ
← →
[lamer]Barmaglot (2003-09-15 15:12) [1]SHFileOperation?
← →
Dark Elf (2003-09-15 15:13) [2]Нет с помощью обычного CopyFile (я знаю что это очень просто но у меня почему-то не получается)
← →
AGGRESSOR (2003-09-15 15:15) [3]1) SetCurrentDir("..");
2) см. [lamer]Barmaglot
← →
AGGRESSOR (2003-09-15 15:15) [4]А что там может не получаться?
← →
Dark Elf (2003-09-15 15:19) [5]пишу значит CopyFile("index.txt","..\index.txt",false) а копировать не хочет может что-то с путём?
← →
[lamer]Barmaglot (2003-09-15 15:23) [6]CopyFile("d:\tmp\autoexec.bat", "d:\autoexec.bat", true); ?
← →
Dark Elf (2003-09-15 15:27) [7]Оно-то всё правильно, спасибо но у меня имя старого файла и нового файла сидят в переменных и всё одинаково кроме того что старый во вложенной директории а новый во внешней. не мог бы ты подсказать как это все сделать с пременными (формат команды CopyFile в этом случае).
← →
[lamer]Barmaglot (2003-09-15 15:31) [8]Код покажи...
← →
Dark Elf (2003-09-15 15:35) [9]for (index = 1;index <= IntToStr(NMPOP31->MailCount);index++)
{
tempdir = NMPOP31->AttachFilePath;
CreateDir("Temp");
NMPOP31->AttachFilePath = DirectoryListBox1->Directory + "\\Temp";
NMPOP31->GetMailMessage(index);
attachment = NMPOP31->MailMessage->Attachments->Text;
oldfilename = NMPOP31->AttachFilePath+"\\"+attachment;
newfilename = tempdir+"\\"+attachment;
CopyFile(oldfilename.c_str(),newfilename.c_str(), false);
DeleteFile(oldfilename);
RemoveDir("Temp");
fwrite(attachment.c_str(),strlen(attachment.c_str()),1,base);
NMPOP31->AttachFilePath = tempdir;
if (file_count + index > StringGrid1->RowCount + 1)
StringGrid1->RowCount++;
StringGrid1->Cells[0][file_count + index] = IntToStr(file_count + index);
StringGrid1->Cells[1][file_count + index] = attachment;
}
← →
Dark Elf (2003-09-15 16:10) [10]CopyFile("file.txt","..\file.txt",false) работает а как
CopyFile(oldname,"..\"+oldname,false) не работает и не понятно почему
← →
panov (2003-09-15 16:33) [11]Попробуй обратить внимание вот на эту строчку -
CreateDir("Temp");
У тебя здесь указан относительный путь, а используешь везде далее абсолютный.
← →
drakulita (2003-09-15 16:36) [12]CopyFile(oldname,PChar("..\"+oldname),false) попробуй так у меня работает..
← →
VAleksey (2003-09-15 17:00) [13]Эта функция PChar просит, а ты ей стринг пихаешь.
← →
Dark Elf (2003-09-15 17:17) [14]Неа, у меня оба параметра PChar
← →
VAleksey (2003-09-15 17:32) [15]
> Dark Elf (15.09.03 17:17) [14]
Откуда это видно?
← →
Dark Elf (2003-09-15 17:37) [16]oldname:String;
......................
CopyFile(PChar(oldname),PChar("..\"+oldname),false)
← →
Anatoly Podgoretsky (2003-09-15 17:45) [17]Теперь вопрос, а файл oldname есть в текущем каталоге, а каталог назначения существует?
← →
Dark Elf (2003-09-15 17:50) [18]файл oldname есть в текущем каталоге и каталог назначения также существует
← →
Anatoly Podgoretsky (2003-09-15 18:03) [19]Dark Elf (15.09.03 17:50) [18]
Как проверял, код в студию, поскольку тогда должно работать.
Значение текущего каталока
Значение oldname
Сообщение об ошибке
код проверки ошибки
Проверка, что текущего_каталог действительно содержит файл
← →
Dark Elf (2003-09-15 18:07) [20]oldname:String;
..........................................
SetCurrentDir("C:\TEXT\TEMP");
oldname:="temp.txt";
CopyFile(PChar(oldname),PChar("..\\"+oldname),false);
Сообщения об ошибке нет
GetLastError; выдаёт ошибку №123
← →
Anatoly Podgoretsky (2003-09-15 18:11) [21]Сообщения и не будет, но ты ответил на все вопросы, эту информацию надо и было привести в самом начале.
ошибка 123 это ERROR_INVALID_NAME
Ествественно, что ..\\temp.txt это неверное имя.
← →
Dark Elf (2003-09-15 18:14) [22]Извиняюсь я сделал очепятку
oldname:String;
..........................................
SetCurrentDir("C:\TEXT\TEMP");
oldname:="temp.txt";
CopyFile(PChar(oldname),PChar( "..\"+oldname),false);
← →
Anatoly Podgoretsky (2003-09-15 18:20) [23]Последний приведеный тобой код работает без ошибок.
program Console;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
S: string;
begin
SetCurrentDir("C:\Temp\0");
S := "temp.txt";
CopyFile(PChar(S),PChar("..\" + S),false);
Readln;
end.
← →
Dark Elf (2003-09-15 18:31) [24]Спасибо!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.09.25;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.012 c