
パスの扱いが独特なFileMaker(正式名称:Claris FileMaker)。
この記事では、FileMakerでのファイル・フォルダ操作の基礎と挙動を理解し、より実務的な活用を学ぶことを目指しています。
「パス取得編」記事の続きとなる内容のため、前回記事もご参照ください。

検証環境
macOS 26.5.2 (Tahoe)
FileMaker 2026 (26.0.2.212)
BaseElements Plugin 5.0.0
対応OSにあわせたパス変換用のカスタム関数
検証のため、使用中のOSに適したパスに自動変換できるよう、「__ConvertFromFileMakerPath_Platform」というカスタム関数を作りました。
引数で渡したFileMaker形式のパスを、macOSであればPosixPath、WindowsであればWinPathで標準形式のパスに変換するというシンプルなカスタム関数です。

今記事では、解説時にこのカスタム関数を使用します。
コード
/*
* =====================================================
* __ConvertFromFileMakerPath_Platform ( fmPath )
* 引数 :FileMaker形式のパス
* 戻り値:標準形式のパス
* Windowsの場合はWinPath/その他の場合はPosixPathで変換
* =====================================================
*/
Let (
[
~isWin = Abs ( Get ( システムプラットフォーム ) ) = 2
] ;
Case (
IsEmpty ( fmPath ) ;
"" ;
~isWin ;
ConvertFromFileMakerPath ( fmPath ; WinPath ) ;
ConvertFromFileMakerPath ( fmPath ; PosixPath )
)
)
ディレクトリ操作
ディレクトリ操作にはBaseElementsプラグインの関数を使用するのが楽です。
はじめに検証・解説のため、デスクトップ直下にあるtestフォルダの「標準形式のパス」を用意します。
変数を設定 [ $testPath ; 値:
__ConvertFromFileMakerPath_Platform ( Get ( デスクトップパス ) & "test" )
ファイル・フォルダの存在確認
ディレクトリ操作前に、該当のファイル・フォルダが存在するかどうかを確かめるのがオススメです。
「BE_FileExists」関数を利用します。
BE_FileExists ( $testPath )
指定パスのファイル・フォルダが存在すれば1、存在しなければ0が返ってくるため、存在しない場合の条件分岐を書くことが可能です。
フォルダの作成
フォルダを作成したい場合、「BE_FolderCreate」関数を利用します。
例えばデスクトップにtestというフォルダを作りたい場合、
変数を設定 [ $_ ; 値:
BE_FolderCreate ( $testPath )
という感じで、「BE_FolderCreate」関数に標準形式のパスを渡します。
| フォルダが存在しない | フォルダを生成し「0」を返す |
| フォルダが存在する | 処理は行われず「0」を返す |
| FileMaker形式のパスを渡す | エラーが発生し「?」を返す |
ちなみに、BaseElementsプラグインの関数は「変数を設定」スクリプトステップにて使用します。
「$_」という変数名は、関数実行用の一時的な名前のため、自由に設定可能です。
ファイル・フォルダの削除
ファイル・フォルダを削除したい場合、「BE_FileDelete」関数に削除対象のパスを渡します。
変数を設定 [ $_ ; 値:
BE_FileDelete ( $testPath )
指定されたファイル・フォルダは即時削除され、ゴミ箱には入りません。
またフォルダを削除する場合、中にファイルが入っていた場合は一緒に削除されます。
| ファイル・フォルダが存在しない | 処理は行われず「0」を返す |
| ファイル・フォルダが存在する | 指定ファイル・フォルダを削除し「0」を返す |
| FileMaker形式のパスを渡す | 指定ファイル・フォルダの有無に関わらず、処理は行われず「0」を返す |
パスの形式が間違っていても「?」エラーが返ってこない点に注意が必要です。
ファイル・フォルダの移動
ファイル・フォルダを移動したい場合、「BE_FileMove」関数に移動前・移動後のパスを渡します。
BE_FileMove ( 移動前のパス ; 移動先のパス ; 同名のファイルを上書きするかどうか )
「同名のファイルを上書きするかどうか」は0か1で設定します。
省略も可能で、省略した場合は0と同じ扱いになります。
| 0 | 同名のフォルダ・ファイルがあるとエラーになる |
| 1 | 既存のフォルダ・ファイルを上書きする |
設定値によって上記違いがあり、基本的には0(省略)で運用するのが安全だと思います。
ただし、空のフォルダは0でも上書きされてしまうようです。
使用例
変数を設定 [ $docPath ; 値:
__ConvertFromFileMakerPath_Platform ( Get ( ドキュメントパス ) & "test" )
変数を設定 [ $_ ; 値:
BE_FileMove ( $testPath ; $docPath )
上記の処理を行うと、デスクトップのtestフォルダが、ドキュメントフォルダに移動します。
フォルダを移動させる場合、中に入っているファイルも一緒に移動されます。
| ファイル・フォルダが存在しない | 処理は行われず「?」を返す |
| ファイル・フォルダが存在する | 指定ファイル・フォルダを移動し「0」を返す |
| FileMaker形式のパスを渡す | 処理は行われず「?」を返す |
ほかの処理とは少し異なり、成功しない場合は基本エラーになるようです。
フォルダやファイルのリネームにも使用可
同じディレクトリで名前を変更したパスを渡すと、ファイル・フォルダのリネームにも使用できます。
例えば、デスクトップのtestフォルダをtest2にリネームしたい場合は下記処理を行います。
変数を設定 [ $test2Path ; 値:
__ConvertFromFileMakerPath_Platform ( Get ( デスクトップパス ) & "test2" )
変数を設定 [ $_ ; 値:
BE_FileMove ( $testPath ; $test2Path )
パス記述の注意点
「移動前に指定したフォルダを、移動後に指定したフォルダに移動させる」という機能ではない点に注意が必要です。
具体的には、移動前のパスと移動後のパスを厳密に書く必要があります。
例えばデスクトップにあるtestフォルダを、デスクトップのmovedフォルダ下に移動したい場合、下記のような記述が必要です。
正しい例
BE_FileMove ( "/Users/admin/Desktop/test" ; "/Users/admin/Desktop/moved/test" )
しかし、下記のような間違った記述では、
間違った例
BE_FileMove ( "/Users/admin/Desktop/test" ; "/Users/admin/Desktop/moved" )
- testフォルダがmovedフォルダにリネームされる
- movedフォルダがすでに存在し、かつ中身が空ではない場合はエラーが発生しフォルダの移動は行われない
どちらかの意図しない処理が行われてしまいます。
