Futurebasic/语言/文件规范
注意 (2008 年 1 月)
虽然 FSSpec 结构代表了当前 FB 用于指定文件和目录的标准,但它已经过时多年,不应该被视为新的 FB 项目的严肃选择。至少有两个现代的 FSSpec 结构的替代方案,分别是
“迁移到 FSRefs 和长 Unicode 名称(来自 FSSpecs)” (Apple 技术说明 TN2078,2003 年 5 月) [1]
以及在以下文件中概述的 FileURL
“typeFSSpec 的消亡:转向 typeFileURL” (Apple 技术说明 TN2022,2001 年 6 月) [2]
修订:2002 年 2 月 (FB^3 版本 6)
文件规范记录 (FSSpecs) 是 FB 久经考验的卷参考号/文件名组合的现代替代方案。你可以按如下方式创建文件规范记录
DIM fs AS FSSpec
文件规范记录在头文件中定义如下
BEGIN RECORD FSSpec
DIM vRefNum AS SHORT
DIM parID AS LONG
DIM name AS STR63
END RECORD
当 FSspec 用作 FILES$
或 OPEN
中的参数时,信息作为单个记录传递给文件处理调用,但你可以按如下方式从记录中提取信息
DIM fs AS FSSPEC
fileName$ = fs.name
parentID& = fs.parID
volRefNum = fs.vRefNum
OS X 不允许使用旧的 vRefNum/fileName 组合。为了确保你的程序在没有修改的情况下正常工作,FB 运行时会创建一个父 ID 和卷参考号列表,并将列表元素编号
替换为旧的卷参考号。看看下面的调用之间的区别
系统 9
fileName$ = FILES$(_fOpen,_"PICT", "打开图片", refNumVar%)
OPEN "I",#1,fileName$,,refNumVar%
OS X
fileName$ = FILES$(_fOpen,_"PICT", "打开图片", fbElemNum%)
OPEN "I",#1,fileName$,,fbElemNum%
你的程序无需进行更改即可从旧风格的调用迁移到新的调用,并且无需任何额外编码即可成为 OS X 兼容的程序。
提供了一个实用程序函数,用于从 FB 的索引表中提取真实的卷参考号和父 ID。
FN GetRealVolAndDir(vRefNum%,parentID&)
将伪卷参考号传递给 vRefNum%
参数中的例程。在返回时,真实的卷参考号将被放置在 vRefNum%
变量中,正确的父 ID 将被放置在 parentID&
变量中。
运行时提供了一个实用程序函数,允许你从各个组件构建文件规范。此函数旨在与所有版本的系统软件一起使用。它的参数与工具箱版本调用的参数相同,但此特定函数足够智能,可以知道它何时处理真实参数,以及何时遇到 FB 替代参数的索引元素编号。
DIM fs AS FSSpec
FN FBMakeFSSpec(inVol%,inDir&,name$, fs )
如果 name$
参数为空字符串,FB 将返回有关父文件夹的信息。
/* FBtoC 不支持 */
除非你包含以下正确的头文件,否则你将无法使用许多文件实用程序函数(例如 FN GetRealVolAndDir
)
INCLUDE "Util_Files.incl"
函数 FBMakeFSSpec
在 FBtoC 中不受支持。