![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Файлы [D7, Win2k]
Nata © (2004-08-13 16:54:00)Здравствуйте друзья!!!…опять у меня проблема…во общем я использую findfirst нахожу нужный файл а потом копирую его (copyfiles) все у меня гуд…в чем же вопрос спросите вы????…;) мне нужно что бы моя программа показывала сколько кб или мб она скопировала???? Как мне определить размер файла и как мне определить скока скачало???? Плз помогите….всех люблю….
Fay (2004-08-13 22:56:00) [1]2 Vetek_2 (13.08.04 22:18) [11]
ReadFile/WriteFile. И сразу Щастье.
GuAV (2004-08-13 22:21:00) [2]
> - у меня 98 винда ..
У меня тоже.
> CopyFileEx не пашет ..
Удивил ;-)
> обидно ...
Нефиг. Ставь ХР.
Vetek_2 (2004-08-13 22:18:00) [3]- у меня 98 винда .. CopyFileEx не пашет .. обидно ...
Nata (2004-08-13 17:45:00) [4]СПАСИБО!!!!!!!ВСЕ КРУТО!!!!ВСЕХ ЛЮБЛЮ!!!
GuAV (2004-08-13 17:34:00) [5]
> LPPROGRESS_ROUTINE lpProgressRoutine, // pointer to the
> callback function
@CopyProgressRoutine, где CopyProgressRoutine объявлена так:
function CopyProgressRoutine(TotalFileSize, TotalBytesTransferred, StreamSize, StreamBytesTransferred: Int64; dwStreamNumber, dwCallbackReason: LongWord; hSourceFile, hDestinationFile: THandle; lpData: Pointer): LongWord; stdcall;
эта процедура будет периодически вызываться
lpData - указатель тот самый, что передается в CopyProgressRoutine.
pbCancel - указатеь на LongBool - признак отмены.
dwCopyFlags - комбинация флагов см. ниже
begin...end (2004-08-13 17:27:00) [6]http://www.delphikingdom.ru/asp/answer.asp?IDAnswer=2133
Nata (2004-08-13 17:22:00) [7]
> GuAV © (13.08.04 17:14) [5]
> CopyFileEx - параметр lpProgressRoutine
открыла хелп
BOOL CopyFileEx(
LPCWSTR lpExistingFileName, // pointer to name of an existing file
LPCWSTR lpNewFileName, // pointer to filename to copy to
LPPROGRESS_ROUTINE lpProgressRoutine, // pointer to the callback function
LPVOID lpData, // to be passed to the callback function
LPBOOL pbCancel, // flag that can be used to cancel the operation
DWORD dwCopyFlags // flags that specify how the file is copied
);
вообщем я так и не поняла я понела только первые два параметра
CopyFileEx(c:\1.rar,d:\1.rar,?,?,?,?) а для чего остальные 4 не поняла...можешь примерчик с поясненицем написать?
Nata (2004-08-13 17:17:00) [8]
> Не совсем понятна задача .. если нужно копировать ОДИН файл
> - и показывать его размер, то :
>
> ФайловаяПеременная.Size;
да!!!! теперь я могу определить размер ФайловаяПеременная.Size но как мне определить сколько я уже перекачал????????
GuAV (2004-08-13 17:14:00) [9]CopyFileEx - параметр lpProgressRoutine
begin...end (2004-08-13 17:11:00) [10]
> Nata (13.08.04 16:54)
> Как мне определить размер файла
FileSizeByName()
Андрей Сенченко (2004-08-13 17:06:00) [11]Не совсем понятна задача .. если нужно копировать ОДИН файл - и показывать его размер, то :
ФайловаяПеременная.Size;
если нужно показывать именно процесс копирования - я бы использовал
TFileStream.Write
TFileStream.Read
Nata (2004-08-13 17:02:00) [12]
> ssk © (13.08.04 16:57) [1]
ну и как я увижу сколько скапировалось???
label1.caption:=result?
ssk (2004-08-13 16:57:00) [13]попробуй так:
uses ShellApi;
function WindowsCopyFile(FromFile, ToDir: string): boolean;
var
F: TShFileOpStruct;
begin
F.Wnd:=0;
F.wFunc:=FO_COPY;
FromFile:=FromFile+#0;
F.pFrom:=pchar(FromFile);
ToDir:=ToDir+#0;
F.pTo:=pchar(ToDir);
F.fFlags:=FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
result:=ShFileOperation(F) = 0;
end;
// пример копирования
procedure TForm1.Button1Click(Sender: TObject);
begin
if not WindowsCopyFile('C:\UTIL\ARJ.EXE', GetCurrentDir) then
ShowMessage('Copy Failed');
end;