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 中不受支援。