Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];

Вниз

CopyFile   Найти похожие ветки 

 
iNew   (2003-12-26 07:15) [0]

function CopyFile(FileName, DestName: TFileName):Integer;
var
CopyBuffer: Pointer; { buffer for copying }
BytesCopied: Longint;
Source, Dest: Integer; { handles }
const
ChunkSize: Longint = 8192; { copy in 8K chunks }
begin
GetMem(CopyBuffer, ChunkSize); { allocate the buffer }
try
Source := FileOpen(FileName, fmShareDenyWrite); { open source file }
try
Dest := FileCreate(DestName); { create output file; overwrite existing }
if Dest < 0 then
try
repeat
BytesCopied := FileRead(Source, CopyBuffer^, ChunkSize); { read chunk }
if BytesCopied > 0 then { if we read anything... }
FileWrite(Dest, CopyBuffer^, BytesCopied); { ...write chunk }
until BytesCopied < ChunkSize; { until we run out of chunks }
finally
FlushFileBuffers(Dest);
FileClose(Dest); { close the destination file }
end;
finally
FlushFileBuffers(Source);
FileClose(Source); { close the source file }
end;
finally
FreeMem(CopyBuffer, ChunkSize); { free the buffer }
end;
Result:=GetLastError;
end;

Если в эту функцию вызвать например так: CopyFile(C:\from\qwerty.txt,C:\to\)
то Result=0, хотя копирования не произойдет. Как сделать так чтоб если
копирования не произошло то Result был >0


 
Palladin   (2003-12-26 08:26) [1]

А чем одноименная системная функция не устраивает?


 
Dimka Maslov   (2003-12-26 08:32) [2]

Конечно не произойдёт, раз путь к конечному файлу указан не полностью, руки чтоли отвалятся написать c:\to\qwerty.txt
Если всё-таки отваливаются сделай проверку для DestName и добавляй в него имя из FileName.
Или см. Palladin © (26.12.03 08:26) [1]


 
Рамиль   (2003-12-26 08:35) [3]


> Result:=GetLastError;

Возвращается ошибка от FreeMem.


 
Anatoly Podgoretsky   (2003-12-26 09:12) [4]

Palladin © (26.12.03 08:26) [1]
Тем что та рабочая.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.01 c
1-37608
mik_1
2003-12-28 18:29
2004.01.13
прерывание исполнения программы


3-37519
palych
2003-12-16 14:26
2004.01.13
Сумма полей!??


1-37616
~GaMeRd~
2003-12-28 14:31
2004.01.13
работа с TStrings


14-37884
KSergey
2003-12-22 12:29
2004.01.13
Где найти библиотеку HiperString?


3-37494
dimm22
2003-12-15 13:17
2004.01.13
Максимальный размер файла IB. Во многих источниках видел, что





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский