Futurebasic/语言/文件规范
注意 (2008 年 1 月)
虽然 FSSpec 结构代表了当前的 FB 指定文件和目录的标准,但它已经过时多年,不应该被考虑用于新的 FB 项目。FSSpec 结构至少有两种现代替代方案,即在
“从 FSSpecs 迁移到 FSRefs 和长 Unicode 名称” (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 中不受支持。