InstallShield中的文件操作

来源:互联网 发布:运动内衣推荐 知乎 编辑:程序博客网 时间:2024/05/03 05:00

在很多InstallShield的安装程序中都需要对文件系统进行操作。现在我就将简单的命令介绍一下Smile

判断文件夹是否存在:

Is (PATH_EXISTS, defenseDir)

这个方法要是返回true就是表示文件夹存在,返回false表示文件夹不存在。

判断文件是否存在:

Is (FILE_EXISTS, defenseDir ^ dummyDefenseFile)

同样,这个方法返回true表示文件存在,返回false表示文件不存在。

在读写文件和创建文件之前都要指定文件的打开方式,这个命令在整个脚本中指定一次就行,除非你要改变打开方式,命令如下:

OpenFileMode (FILE_MODE_APPEND);OpenFileMode (FILE_MODE_BINARY);

指定第一种方式时,你写文件的话就会从文件末尾接着写。第二种方式,你可以从文件的任何位置开始读写文件。

创建文件:

CreateFile (handler, defenseDir, dummyDefenseFile)

第一个参数是一个number类型的变量,也是个输出参数,方法会将创建的文件的句柄赋值给这个参数。第二个参数是文件的目录,第三个参数是文件名。

这个方法如果成功则返回0,否则返回值<0

也许创建完文件以后你想把它设置为隐藏的,那就用下面的方法吧:

SetFileInfo (defenseDir ^ defenseFile, FILE_ATTRIBUTE, FILE_ATTRIBUTE_HIDDEN, ""); 

第一个参数是文件名加路径,因为第三个参数是FILE_ATTRIBUTE_HIDDEN,所以最后一个参数为""就可以了。

创建完文件我们就要打开它并往里面写东西了,打开文件要用下面的命令:

OpenFile (handler, defenseDir, defenseFile);

那么如何读取文件中的内容呢,用下面的代码:

ReadBytes (handler, svLine, 0, 4);

svLine是个string型的变量,注意,第三个和最后一个参数的含义是,将读出的东东从svLine的第0个字符开始填充,读4个字符。

写也一样:

WriteBytes(handler, svLine, 0, 4);

这表示从第0个开始写,写4个字符,注意,这里的第0个是指svLine的第0个字符而不是handler所指的文件的第0个字符。

或者你可能会想从文件的某一位置写而不是从开头写,那么就用SeekBytes方法吧:

SeekBytes(handler, 0, FILE_BIN_START);

另外还要说一句就是WriteBytes方法的写是覆盖式的。

最后不要忘了一件事就是关闭你所打开的文件:

CloseFile (handler);
原创粉丝点击