|
最近常有人问我这两个的区别,在自动化论坛里有一个人发贴是这样问的:
**************************************************************
在写class的时候需要用到SYS_FileOpen这个方法,
题目是在F:\盘中打开已经存在的"a.txt"文件
我写的程序如下:
if SYS_FileExists("F:\a.txt")
File_Open("F:\a.txt",FM_READ)
为什么这里找不到我的文件
**************************************************************
首先要明白SYS_FileOpen和File_Open的作用范围
SYS_FileOpen的对象是target machine。
File_Open的对象是host machine.
从他的问题中我们我们可以看出,他要做的操作是在另外一台机器上。因为用的是
File_Open("F:\a.txt",FM_READ),并且找不到a.txt文件。
所以程序应改为:
if SYS_FileExists("F:\a.txt")
SYS_File_Open("F:\a.txt",FM_READ)
这样就可以找到文件,并且读取了。
此外可以引申出其它两个问题:
1、将File_Open("F:\a.txt",FM_READ)
改为File_Open("F:\a.txt",FM_WRITE)
则不会出现文件找不到的错误,出现pass。但要注意的是,这样做还是错的。因为改成FM_WRITE后,虽然本机上没有a.txt这个文件,但是程序会create一个新的文件。
但我怀疑这是silktest的一个bug,因为在本机没开agent的情况下,还是会在本机上创建一个a.txt文件。正确的结果我认为还是应该报出找不到文件的错误。
2、所谓的target machine指的是目标机,可以是另一台机器,也可以是本机,所以尽量用SYS_FileOpen而不要用FileOpen
[ 本帖最后由 xinyu2119 于 2006-11-30 13:11 编辑 ] |
|