在很多InstallShield的安装程序中都需要对文件系统进行操作。现在我就将简单的命令介绍一下 判断文件夹是否存在: 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); |
http://hi.baidu.com/windbellxy/blog/item/29ebbb2b17825b255243c1dd.html