14 路径缓冲函数
路径缓冲函数有助于你处理包含查找路径的字符串。路径缓冲函数工作在一个唯一的作为路径缓冲的临时字符串变量。该路径缓冲在InstallShield内部被定义;所有路径字符串函数对路径缓冲中的内容起作用。
这些函数不支持长文件名。在将长文件名传递到一个路径缓冲函数前调用LongPathToShortPath将它转换到等价的短文件名。
路径函数帮助你操作和创建路径字符串。你一旦创建一个路径字符串,你可以把它保存到合适的文件中。
PathAdd
将一个路径添加到路径缓冲中的查找路径。
PathDelete
从路径缓冲中删除一个目录。
PathFind
在路径缓冲中找到一个特定路径或任何包含一个特定名称的路径。
PathGet
检索路径缓冲的当前值。
PathMove
重新整理路径缓冲。
PathSet
分配一个值给路径缓冲。
14.1 PathAdd
语法:PathAdd (szDir, szRefDir, bRefDir, bPosition);
说明:PathAdd函数添加一个路径到路径缓冲中的查找路径。使用该函数你可以指定和路径缓冲中的一个现存目录相关联的目录位置。另外,你可以添加该路径作为路径缓冲中的第一个或最后一个目录。
该函数和Autoexec.bat文件中的路径语句或路径环境变量无关。它仅作用在路径缓冲,帮助你创建,修改和操作查找路径。然后你可以通过使用不同的批处理文件函数将修改的路径缓冲字符串添加到Autoexec.bat文件。该函数不支持长文件名。在将长文件名传递到一个路径缓冲函数前调用LongPathToShortPath将它转换到等价的短文件名。
参数:
szDir
指定要添加到路径缓冲中的路径。
szRefDir
指定当前路径缓冲中与将要被添加的新路径相关的路径。
bRefDir
指定szRefDir是否是一个全限定路径。在该参数位置传递下列预定义常量之一:
FULL:SzRefDir是一个全限定路径(也就是,包括一个驱动器指示符和到一个目录的完整路径)。
PARTIAL:SzRefDir仅是目录名(没有驱动器和路径信息)。
bPosition
指定szDir要被插入到的相对于szRefDir的位置。在该参数位置传递下列预定义常量之一:
AFTER:指定szDir被插入到szRefDir 之后。如果szRefDir指定一个空字符串,szDir被插入到路径缓冲中的路径结尾。
BEFORE:指定szDir被插入到szRefDir 之前。如果szRefDir指定一个空字符串,szDir被插入到路径缓冲中的路径前面。
返回值:
0:表明函数成功添加一个目录到路径缓冲。
< 0:表明函数未能添加一个目录到路径缓冲。
注解:
·如果你在szDir指定了一个当前已经存在于路径缓冲中的目录,InstallShield将复制它,并且前面存在的目录位置不被修改。 InstallShield忽略在目录名结尾的反斜杠。
14.2 PathDelete
语法:PathDelete (szDir, bDir);
说明:PathDelete函数删除路径缓冲中的一个特定路径。你可以指定路径名或输入一个全限定路径。
该函数和Autoexec.bat文件中的路径语句或路径环境变量无关。它仅作用在路径缓冲,帮助你创建,修改和操作查找路径。调用PathGet得到路径缓冲中的内容,调用PathSet设置路径缓冲中的内容。该函数不支持长文件名。在将长文件名传递到PathDelete前调用LongPathToShortPath将它转换到等价的短文件名。
参数:
szDir
指定要从路径缓冲中删除的路径。
bDir
指定szRefDir是否是一个全限定路径。在该参数位置传递下列预定义常量之一:
FULL:SzRefDir是一个全限定路径(也就是,包括一个驱动器指示符和到一个目录的完整路径)。
PARTIAL:SzRefDir仅是目录名(没有驱动器和路径信息)。
返回值:
0:表明函数成功从路径缓冲中删除一个目录。
< 0:表明函数未能从路径缓冲中删除一个目录。
14.3 PathFind
语法:PathFind (szDir, svResult, bDir, bSearch);
说明:PathFind函数从路径缓冲中查找一个特定目录。你可以以一个全限定名或仅目录名来指定目录。
该函数和Autoexec.bat文件中的路径语句或路径环境变量无关。它仅作用在路径缓冲,帮助你创建,修改和操作查找路径。然后你可以通过使用不同的批处理文件函数添加该临时路径字符串到Autoexec.bat文件。该函数不支持长文件名。在将长文件名传递到PathFind前调用LongPathToShortPath将它转换到等价的短文件名。
参数:
szDir
指定要在路径缓冲中查找的路径。
svResult
返回由该函数返回的路径缓冲中的完整目录和路径。
bDir
指定szRefDir是否是一个全限定路径。在该参数位置传递下列预定义常量之一:
FULL:SzRefDir是一个全限定路径(也就是,包括一个驱动器指示符和到一个目录的完整路径)。
PARTIAL:SzRefDir仅是目录名(没有驱动器和路径信息)。
bSearch
指定从哪儿开始查找。在该参数位置传递下列预定义常量之一:
CONTINUE:从路径缓冲中的前一个查找结束处继续查找。
RESTART:从路径缓冲的开头开始查找。
返回值:
0:表明函数在路径缓冲中成功查找一个目录。
< 0:表明函数在路径缓冲中未能查找到一个目录。
14.4 PathGet
语法:PathGet (svString);
说明:PathGet函数检索当前保存在路径缓冲(一个由调用PathSet所创建的临时存储区)中的查找路径。路径缓冲使你能创建和编辑一个查找路径。当你编辑完路径,调用PathGet把查找路径放置到一个字符串变量,因而你可以把它传递到你的安装程序中的其它函数。
该函数和Autoexec.bat文件中的路径语句或路径环境变量无关。它仅作用在路径缓冲,帮助你创建,修改和操作查找路径。然后你可以通过使用不同的批处理文件函数添加该临时路径字符串到Autoexec.bat文件。该函数不支持长文件名。在将长文件名传递到PathFind前调用LongPathToShortPath将它转换到等价的短文件名。
参数:
svString
返回路径缓冲中的内容。
返回值:
0:表明函数成功检索当前保存在路径缓冲中的路径。
< 0:表明函数未能检索当前保存在路径缓冲中的路径。
注解:
PathGet从路径缓冲中检索查找路径并释放分配给路径缓冲的内存。除非通过调用PathSet来重新初始化路径缓冲,否则随后对PathGet的调用将会失败。
14.5 PathMove
语法:PathMove (szDir, szRefDir, bDir, bRefDir, bPosition);
说明:PathMove函数重新定位路径缓冲中的一个目录到另一个位置。你也可以使用该函数来定位一个目录,相对于另一个目录或作为路径字符串中的第一项或最后一项。
调用PathGet得到路径缓冲中的内容,调用PathSet设置路径缓冲中的内容。该函数和Autoexec.bat文件中的路径语句或路径环境变量无关。它仅作用在路径缓冲,帮助你创建,修改和操作查找路径。然后你可以通过使用不同的批处理文件函数添加该临时路径字符串到Autoexec.bat文件。该函数不支持长文件名。在将长文件名传递到PathMove前调用LongPathToShortPath将它转换到等价的短文件名。
参数:
szDir
指定在路径缓冲中重新定位的完整路径或部分路径。
szRefDir
指定当前路径缓冲中和将要被移动的szDir中的路径相关的路径。为移动szDir中的路径到路径缓冲中路径的开始或结尾,给该参数传递一个空字符串。
bDir
指定szDir是否是一个全限定路径。在该参数位置传递下列预定义常量之一:
FULL:表明szDir包含一个全限定目录名。
PARTIAL:表明szDir仅包含目录名。
bRefDir
指定szRefDir是否是一个全限定路径。在该参数位置传递下列预定义常量之一:
FULL:表明SzRefDir包含一个全限定路径名。
PARTIAL:表明SzRefDir仅包含目录名。
bPosition
指定szDir要被插入到的相对于szRefDir的位置。在该参数位置传递下列预定义常量之一:
AFTER:指定szDir被插入到szRefDir 之后。如果szRefDir指定一个空字符串,szDir被插入到路径缓冲中的路径结尾。
BEFORE:指定szDir被插入到szRefDir 之前。如果szRefDir指定一个空字符串,szDir被插入到路径缓冲中的路径前面。
返回值:
0:表明函数成功在路径缓冲中重新定位一个目录。
< 0:表明函数未能在路径缓冲中重新定位一个目录。
14.6 PathSet
语法:PathSet (szString);
说明:PathSet函数保存一个查找路径字符串到路径缓冲中。然后你可以使用其它路径函数来操作该缓冲。szString的值必须是一个绝对路径。
该函数和Autoexec.bat文件中的路径语句或路径环境变量无关。它仅作用在路径缓冲,帮助你创建,修改和操作查找路径。然后你可以通过使用不同的批处理文件函数添加该临时路径字符串到Autoexec.bat文件。该函数不支持长文件名。在将长文件名传递到PathSet前调用LongPathToShortPath将它转换到等价的短文件名。
参数:
szString
指定一个要保存在路径缓冲中的查找路径。该查找路径必须是全限定的;也就是它必须包含一个驱动器指示符和到一个目录的完整路径。
返回值:
0:表明函数成功保存一个查找路径到路径缓冲中。
< 0:表明函数未能保存一个查找路径到路径缓冲中。