(原创)关于WR获取文件大小的解决方法
2006-05-23 17:12
579 查看
今天在论坛上看到有测友提出怎么获取文件大小的问题,在WR TSL ONLINE RERERENCE 上查file相关函数,没找到,就想自己写一个函数.
基本思路:
对WR比较熟悉的人都会知道它可以调用动态库的功能,因此只要我们自己用其他编程语言写一个动态库(我选择了用delphi),然后WR中调用动态库去获取文件大小
方法一:
编写动态库,以下是我的代码:
library filesize;
uses
SysUtils,
Classes;
{$R *.res}
function getfilesize(filename:string):Longint;stdcall;
var
f:file of Byte;
nsize:Longint;
begin
AssignFile(f,filename);
Reset(f);
nsize:=filesize(f);
CloseFile(f);
Result :=nsize;
end;
exports
getfilesize;
begin
end.
编译成功后生成了一个动态库filesize.dll,在WR中调用此动态库,代码如下:
load_dll("D:\\getfilesize\\filesize.dll");
extern long getfilesize(string filename);
rc=getfilesize("D:\\getfilesize\\1.txt");
成功地获取了1.txt的文件大小;
方法二:
我到wr安装目录arch下去找一动态库filecomp.dll,利用dll函数查看器我找到了它有个叫ext_file_size的函数,从字面上理解应该是获取文件大小,于是我用WR调用试试,果然也能解决问题,我把他做成一个函数,供以后使用:
extern int ext_file_size(string);
public function getfilesize(in filename)
{
auto size;
load_dll(getenv("M_ROOT") & "\\arch\\filecomp.dll");
size=ext_file_size(filename);
return(size);
}
rc=getfilesize("D:\\getfilesize\\1.txt");
结果同样返回了1.txt的文件大小;
总结:
通过这两种方法,可以发散地想到以后假如再出现Tsl online reference没有要使用的函数时,可以采取以上做法来实现自己想要的结果;好了,该干活了!
基本思路:
对WR比较熟悉的人都会知道它可以调用动态库的功能,因此只要我们自己用其他编程语言写一个动态库(我选择了用delphi),然后WR中调用动态库去获取文件大小
方法一:
编写动态库,以下是我的代码:
library filesize;
uses
SysUtils,
Classes;
{$R *.res}
function getfilesize(filename:string):Longint;stdcall;
var
f:file of Byte;
nsize:Longint;
begin
AssignFile(f,filename);
Reset(f);
nsize:=filesize(f);
CloseFile(f);
Result :=nsize;
end;
exports
getfilesize;
begin
end.
编译成功后生成了一个动态库filesize.dll,在WR中调用此动态库,代码如下:
load_dll("D:\\getfilesize\\filesize.dll");
extern long getfilesize(string filename);
rc=getfilesize("D:\\getfilesize\\1.txt");
成功地获取了1.txt的文件大小;
方法二:
我到wr安装目录arch下去找一动态库filecomp.dll,利用dll函数查看器我找到了它有个叫ext_file_size的函数,从字面上理解应该是获取文件大小,于是我用WR调用试试,果然也能解决问题,我把他做成一个函数,供以后使用:
extern int ext_file_size(string);
public function getfilesize(in filename)
{
auto size;
load_dll(getenv("M_ROOT") & "\\arch\\filecomp.dll");
size=ext_file_size(filename);
return(size);
}
rc=getfilesize("D:\\getfilesize\\1.txt");
结果同样返回了1.txt的文件大小;
总结:
通过这两种方法,可以发散地想到以后假如再出现Tsl online reference没有要使用的函数时,可以采取以上做法来实现自己想要的结果;好了,该干活了!
相关文章推荐
- 关于inputStream.available()方法获取下载文件的总大小
- PHP 获取远程文件大小的3种解决方法
- 关于inputStream.available()方法获取下载文件的总大小
- 关于inputStream.available()方法获取下载文件的总大小
- 关于inputStream.available()与HttpURLConnection.getContentLength()方法获取下载文件的大小
- 关于inputStream.available()方法获取下载文件的总大小
- [Android Pro] 关于inputStream.available()方法获取文件的总大小
- 遇到问题---java获取网络文件大小失败getContentLength()为-1 完整解决方法
- PHP 获取远程文件大小的3种解决方法
- (原创)关于如何处理EXCEL( CSV)文件 导入数据库的解决方法!!
- 遇到问题---java获取网络文件大小失败getContentLength()为-1 完整解决方法
- (判断url文件大小)关于inputStream.available()方法获取下载文件的总大小
- 关于inputStream.available()与HttpURLConnection.getContentLength()方法获取下载文件的大小
- 在php.ini中设置表单上传文件的大小,以及获取设置的值的方法 .
- 关于写入文件缓存时报"java.io.FileNotFoundException open failed (is a director)"错误的解决方法
- Java中获取文件大小的正确方法
- Linux下获取文件大小的方法
- Java中获取文件大小的正确方法
- 关于CppSqlite中数据库文件中文路径识别问题的解决方法
- C和C++获取文件大小的方法总结