假设在我的电脑里有一张图片,我要知道它有多大?不用对话框如何实现?procedure TForm1.Button1Click(Sender: TObject);
var
f:file of integer;
s:integer;
begin
assignfile(f,'我的照片.jpg');
reset(f);
s:=filesize(f);
showmessage(inttostr(s));我试了半天未能成功?难道非要用对话框来查找文件,才能得到文件的大小吗?
var
f:file of integer;
s:integer;
begin
assignfile(f,'我的照片.jpg');
reset(f);
s:=filesize(f);
showmessage(inttostr(s));我试了半天未能成功?难道非要用对话框来查找文件,才能得到文件的大小吗?
解决方案 »
- 请教,通过两个Adoconnection连接两个不同的oracle数据库,如何进行数据查询和数据转移
- 怎样声明goto语句的标号?
- delphi 与数据库连接
- chm帮助文件调用问题,用DELPHI调用CHM帮助文件,如何使打开后的chm定位在'目录'或是'索引'上,
- 一个数据备份的奇怪问题。请教啊!给我今年一个完美的句号吧!
- 在汇编中调用MessageBox的问题??
- 我我要暴走了~~~~~~5555 还是关于query查询`~
- 打印预览时,出现设计时的表单怎样去掉?
- 只有DCU没有PAS的VCL怎么安装?
- 菜鸟专门送分,TlistBox
- 我想下个DELPHI5.有谁能提供下载地址吗
- bsToolWindow风格的窗格在拖拉的时候会被任务栏遮住
不用showmessage可以用另外方式啊
procedure TForm1.Button1Click(Sender: TObject);
var
f:file of Byte;
begin
assignfile(f,'c:\2.jpg');
reset(f);
ShowMessage('File size now = '+IntToStr(FileSize(f)));
end;
iFileHandle: Integer;
iFileLength: Integer;
begin
if OpenDialog1.Execute then
begin
iFileHandle := FileOpen(OpenDialog1.FileName, fmOpenRead);
iFileLength := FileSeek(iFileHandle, 0, 2);
end;
end;
如:
var
f:file of integer;
s:integer;
begin
assignfile(f,'http://bbs.togame.net/attachment/Mon_0803/5_92040_ec8ef579ded1719.gif');
reset(f);
s:=filesize(f);
showmessage(inttostr(s));
end;
theFile: TFileStream;
begin
if FileExists('我的照片.jpg') then
begin
theFile:= TFileStream.Create('我的照片.jpg',fmOpenRead);
showmessage(FloattoStr(Trunc(SelectedFile.Size / 1024 * 100) / 100) +' KB');
theFile.free;
end;
end;
var
h:TIdhttp;
f:file of byte;
MyStream:TMemoryStream;
begin
MyStream:=TMemoryStream.Create;
h:=Tidhttp.Create(nil);
try
h.get('http://bbs.togame.net/attachment/Mon_0803/5_92040_ec8ef579ded1719.gif',MyStream);
except
showmessage('网络出错!');
MyStream.Free;
exit;
end;
MyStream.SaveToFile('c:\1.gif');
//sleep(100);
assignfile(f,'c:\1.gif');
reset(f);
ShowMessage('gif size now = '+FloatToStr((Trunc(FileSize(f)/1024 * 10))/10)+'kb');
MyStream.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
iFileSize: Integer;
begin
IdHTTP1.Head('http://bbs.togame.net/attachment/Mon_0803/5_92040_ec8ef579ded1719.gif');
iFileSize:= IdHTTP1.Response.ContentLength;
ShowMessage('gif size now = '+FloatToStr((Trunc(iFileSize/1024 * 10))/10)+'kb');
end;这个应该是你想要!
var
dwBufferSize: DWORD;
dwIndex: DWORD; InfoBuffer: array[1..32] of Byte; Info: string;
bQuery: LongBool;
begin
dwBufferSize := 32;
dwIndex := 0; bQuery := WiniNet.HttpQueryInfo(hRequest, HTTP_QUERY_CONTENT_LENGTH, @InfoBuffer, dwBufferSize, dwIndex); if bQuery then
begin
Info := pChar(@InfoBuffer);
dwFileSize := SysUtils.StrToInt(Info);
end; result := bQuery;
end;
hConnect: HINTERNET;
hRequest: HINTERNET; dwFileSize: DWORD;
dwError: DWORD;
dwPosition: DWORD;
dwBytesRead: DWORD; bTerminate: LongBool;
bSucceed: LongBool; lpBuffer: Pointer; f: file;
begin
hConnect := InternetConnect;//创建连接
hRequest := HttpOpenRequest(hConnect); while not HttpSendRequest(hRequest) do//发送请求
begin
dwError := GetLastError();
if (dwError = ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED) and
(InternetErrorDlg(hConnect) = ERROR_SUCCESS) then
Continue; InternetCloseHandle(hRequest);
InternetCloseHandle(hConnect);
exit;
end; if not HttpQueryInfo(hRequest, dwFileSize) then exit;//取得服务器文件长度
try
AssignFile(f, FFielName);
Rewrite(f, 1);
dwPosition := 0; //启始位置 if Assigned(FOnOpenWork) then FOnOpenWork(self, dwFileSize); bSucceed := false;
bTerminate := false; while true do
begin
if Assigned(FOnOverWork) then FOnOverWork(self, dwPosition, bTerminate);//OnOverWork事件,用来显示文件下载进度
if bTerminate then Break;
if not InternetReadFile(hRequest, dwPosition, dwBytesRead, lpBuffer) then Break;
if dwBytesRead = 0 then
begin
bSucceed := true;
Break;
end;
BlockWrite(f, lpBuffer^, dwBytesRead);//写块lpBuffer
end;
if Assigned(FOnCloseWork) then FOnCloseWork(self, bSucceed);//OnCloseWork下载工作关闭时间
CloseFile(f); finally
InternetCloseHandle(hRequest);
InternetCloseHandle(hConnect);
end;
end;以上是部分文件下载的部分代码