跳轉到內容

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 vs OS 9 volRefNum

[編輯 | 編輯原始碼]

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 索引列表資訊中提取真實資訊

[編輯 | 編輯原始碼]

提供了一個實用程式函式,可以從 FB 的索引表中提取真實的卷參考號和父 ID。

FN GetRealVolAndDir(vRefNum%,parentID&)

將偽卷參考號傳遞給 vRefNum% 引數中的例程。返回後,真實的卷參考號將放置在 vRefNum% 變數中,正確的父 ID 將放置在 parentID& 變數中。

FSMAKEFSSPEC -> FBMakeFSSpec

[編輯 | 編輯原始碼]

執行時提供的實用程式函式允許您從單個元件構建檔案規範。此函式旨在與所有版本的系統軟體一起使用。它的引數與工具箱版本呼叫的引數相同,但這個特定的函式足夠聰明,能夠知道它何時處理真實引數,何時遇到來自 FB 的替代引數的索引元素號。

DIM fs AS FSSpec
FN FBMakeFSSpec(inVol%,inDir&,name$, fs )

如果 name$ 引數為空字串,則 FB 返回有關父資料夾的資訊。

/* FBtoC 不支援 */

除非您包含以下正確的標頭檔案,否則您將無法使用許多檔案實用程式函式(如 FN GetRealVolAndDir

INCLUDE "Util_Files.incl"

函式 FBMakeFSSpec 在 FBtoC 中不受支援。

華夏公益教科書