# 3 `macfs` -- 様々なファイルシステム関連のサービス

Macintoshプラットフォームで利用できます。

リリース 2.3 で撤廃されました。 macfsモジュールは旧式のものです。`FSSpec`、 `FSRef`、`Alias` の操作には、`Carbon.File` または`Carbon.Folder` モジュールを、 ファイルダイアログには`EasyDialogs`を使ってください。 また、このモジュールはUFSパーティションでは正確には動作しないことが わかっています。

このモジュールでは、Macintoshの`FSSpec` の操作、 エイリアスマネージャ、finderエイリアス、および標準ファイル パッケージへのアクセスを提供しています。

関数やメソッドがfile 引数をとるようになっている場合、引数は常に 次の 3 つ、(1) Macintosh のフルパス名あるいは部分パス名、 (2) `FSSpec` オブジェクト、 (3) Inside Macintosh: Files で解説されている 3 要素のタプル `(wdRefNum, parID, name)` のうちのいずれかになります。

`FSSpec` は、実在しないファイルでも、実在するフォルダの下に 配置されていることになっている限り表現できます。 MacPython ではパス名も同じように扱えますが、 unix ベースの Python では パス名とFSRefsの挙動が異なるため扱えません。 詳しくは Apple のドキュメントを参照してください。

エイリアスと標準ファイルパッケージの詳細も Apple のドキュメントに 書かれています。

`FSSpec`( | file)

  指定したファイルに対する`FSSpec`オブジェクトを作成します。

`RawFSSpec`( | data)

  FSSpec の C 構造体の生データが入った文字列から`FSSpec` オブジェクトを作成します。主に`FSSpec`構造体をネットワーク経由で得 る場合に便利です。

`RawAlias`( | data)

  Alias の C 構造体の生データが入った文字列から`Alias` オブジェクトを作成します。主に`Alias`構造体をネットワーク経由で得 る場合に便利です。

`FInfo`( | )

  ゼロで埋めた`FInfo`オブジェクトを作成します。

`ResolveAliasFile`( | file)

  エイリアスファイルを解決します (オリジナルのファイルとの対応を取りま す)。`(fsspec, isfolder, aliased)` からなる 3 要素のタプルを返します。 fsspec はエイリアス解決によって得られた`FSSpec`オブジェクト です。fsspec がフォルダを指している場合、isfolder は true になります。fsspec がエイリアスを指している場合、aliased は true になります (それ以外の場合には、fsspec はファイル自体の `FSSpec` になります)。

`StandardGetFile`( | [type, ...])

  標準的イアログ 「入力ファイルを開く」をユーザに提示します。 オプションとして、ユーザが選択できるファイルを制限するために 4 文字の文字列で表されたファイルタイプ指定子を 4 つまで渡せます。 この関数は、`FSSpec`オブジェクトとユーザがキャンセルしないで ダイアログを閉じたかどうかを示すフラグを返します。

`PromptGetFile`( | prompt[, type, ...])

  `StandardGetFile()` とほぼ同じですが、ダイアログの一番上に表示さ れるプロンプトを指定できます。

`StandardPutFile`( | prompt[, default])

  標準ダイアログ 「出力ファイルを開く」をユーザに提示します。 prompt はプロンプト文字列です。default はオプションの引数で、 出力ファイル名の初期値を指定します。 この関数は、`FSSpec`オブジェクトとユーザがキャンセルしないで ダイアログを閉じたかどうかを示すフラグを返します。

`GetDirectory`( | [prompt])

  非標準的ダイアログ「ディレクトリを選ぶ」をユーザに提示します。 このダイアログでは、選択したいディレクトリを開いておいてから、 ``select current directory'' ボタンをクリックします。 prompt はプロンプト文字列で、ダイアログの一番上に表示されます。 この関数は、`FSSpec`オブジェクトとユーザがキャンセルしないで ダイアログを閉じたかどうかを示すフラグを返します。

`SetFolder`( | [fsspec])

  ファイル選択ダイアログを提示する時に最初に表示されるフォルダを設定します。 fsspec には、フォルダそのものではなく、フォルダ内のファイル を指定します (実在しないファイルでもかまいません)。 引数を渡さない場合は、フォルダはカレントディレクトリ、つまり `os.getcwd()`で返されるディレクトリに設定されます。

  System 7.5 以降では、ユーザは「一般設定」コントロールパネルで標準 ファイルパッケージの振る舞いを変更でき、設定によってはこの関数の 呼び出しが無効化されるので注意してください。

`FindFolder`( | where, which, create)

  ゴミ箱や初期設定フォルダなど、Mac OS が管理している「特別な」フォルダの 位置を検索します。where は検索したいディスク、which は 検索したいフォルダを指定する4文字の文字列です。create を設定す ると、該当するフォルダが存在しない場合に新たに生成します。 `(vrefnum, dirid)` からなるタプルを返します。

  where とwhich に指定できる定数は、標準モジュール Carbon.Foldersにあります。

`NewAliasMinimalFromFullPath`( | pathname)

  与えられたファイルを指す最小限の`alias`オブジェクトを返します。 ファイルはフルパス名で与えなければなりません。これは存在しないファイ ルを指す`Alias`を作成する唯一の方法です。

`FindApplication`( | creator)

  4 文字のクリエータコードcreator を持ったアプリケーションの位置を 探し出します。この関数はアプリケーションを指す`FSSpec`オブジェ クトを返します。