ファイルパスの作成

FileMaker Pro の多くのダイアログボックスでは、外部ファイルまたは FileMaker データソースへのファイルパスを指定できます。ほとんどの場合、それぞれの名前の付いたファイルまたは FileMaker データソースは、1 つ以上のファイルパスから構成されます。該当すると思われるファイルの一覧を FileMaker クライアントで検索する場合は、複数のファイルパスを使用します。

FileMaker データソースの追加とファイルパスの指定方法の詳細については、外部データソースへの接続を参照してください。

FileMaker クライアントとホストでは、特別な FileMaker 形式のファイルパスがサポートされています:

パスタイプ

説明

構文

相対パス

現在のデータベースの場所またはユーザのドキュメントフォルダから指定されたターゲットファイルへのパス (下記のメモを参照)

file:ディレクトリ名/ファイル名

filemac:ディレクトリ名/

filewin:../ファイル名

完全なローカルまたはリモート (macOS)

ローカルボリュームまたはリモートボリュームにあるターゲットファイルまたはフォルダに対する、ファイルシステムの最上位からの完全パス

filemac:/ボリューム名/ディレクトリ名/ファイル名

filemac:/ボリューム名/ディレクトリ名/

完全なローカル (Windows)

Windows のターゲットファイルまたはフォルダに対する、ファイルシステムの最上位からの完全パス

filewin:/ドライブ文字:/ディレクトリ名/ファイル名

filewin:/ドライブ文字:/ディレクトリ名

完全なリモート (Windows)

Windows ファイル共有機能を使用して共有されている Windows ボリュームのターゲットファイルまたはフォルダの完全パス

filewin://コンピュータ名/共有名/ディレクトリ名/ファイル名

filewin://コンピュータ名/共有名/ディレクトリ名/

FileMaker ネットワーク

共有されている FileMaker Pro ファイルへのネットワークパス

fmnet:/ホスト名または IP アドレス/ファイル名

パスの接頭語について

パスの接頭語により、FileMaker クライアントがどのような場合に固有のパスを使用できるかが決定されます:

  • fileimage、または movie で始まる接頭語により、ファイルのデータタイプを指定します。固有のデータタイプでのみ動作するスクリプトステップでは image または movie が必要です (下記参照)。それ以外の場合は file を使用します。
  • winmac、または linux で終わる接頭語により、パスを使用できるプラットフォームを指定します。これらが指定されなかった場合、いずれのプラットフォームでもパスを使用できます。
  • fmnet という接頭語により、共有されている FileMaker Pro ファイルへのネットワークパスを指定します。

file で始まる接頭語は、任意の完全パスまたは相対パスに使用できます。file という接頭語は、任意のプラットフォームで使用できます。

複数のプラットフォーム固有のパスを作成するのは困難なので、多くの場合 file 接頭語のみを (末尾にプラットフォームを指定せずに) Get (テンポラリパス) 関数または Get (ドキュメントパス) 関数とともに使用し、単一のパスを変数として指定するほうが簡単です。実行時には、これらの関数を使用した変数パスは現在のクライアントのプラットフォーム向けに機能します。たとえば、次の式で定義された変数はクライアントのテンポラリフォルダにある「myfile.txt」ファイルを表します。

"file:" & Get (テンポラリパス) & "myfile.txt"

次の表は、サポートされるすべてのパスの接頭語の一覧と使用できる場合の例を示します。

パスの接頭語

用途

file

filemac

filewin

filelinux

[レコードのインポート] スクリプトステップおよび [レコードのエクスポート] スクリプトステップを使用したデータのインポートおよびエクスポート、FileMaker データソース、オブジェクトフィールドに [ファイルを挿入] スクリプトステップを使用して挿入されたファイル、データファイルを操作するスクリプトステップ

image

imagemac

imagewin

imagelinux

それぞれ [PDF を挿入] スクリプトステップまたは [ピクチャを挿入] スクリプトステップを使用してオブジェクトフィールドに挿入されたイメージまたは PDF ファイル

movie

moviemac

moviewin

movielinux

[オーディオ/ビデオを挿入] スクリプトステップを使用してオブジェクトフィールドに挿入されたオーディオ/ビデオファイル

複数のファイルパスの例

外部データソースを追加するか、またはファイルにアクセスするほとんどのスクリプトステップを使用する場合、該当すると思われるファイルの一覧を FileMaker クライアントで検索するには複数のファイルパスを使用できます。ファイルパスは、表示される順序で検索されます。FileMaker クライアントは、最初に特定できたファイルを開いて検索を完了します。各ファイルパスは個別の行に記述する必要があります。

  • 例 1: この例では、FileMaker Pro のデータベースは 2 つの異なるオペレーティングシステムで動作する必要があります。それぞれローカルファイルにアクセスする Windows システムおよび macOS システムです。どちらのプラットフォームでも、データベースは「test.xlsx」という名前のローカルファイルにアクセスする必要があります。この場合、次のようなファイル参照を使用します。
    filewin:/C:/ExcelFiles/Hosted/test.xlsx
    filemac:/MacintoshHD/ExcelFiles/Hosted/test.xlsx

    または共有フォルダが両方のシステムのドキュメントフォルダにある場合は、この式に変数を使用して両方のプラットフォームで機能する単一のパスを指定できます:

    "file:" & Get (ドキュメントパス) & "Hosted/test.xlsx"

    次の「ファイルパスで変数を使用する例」を参照してください。

  • 例 2: この例では、スクリプトのレコードのインポートで FileMaker Pro のデータベースから共有ファイルにアクセスします。ただし、ホストを利用できない場合に参照する代替ファイルとして、別のサーバーで共有されているファイルと、ローカルのハードドライブに保存されているファイルを追加します。最初のネットワークファイルにアクセスできない場合は、FileMaker クライアントにより次のネットワークファイルが検索されます。2 番目のネットワークファイルにもアクセスできない場合は、FileMaker クライアントによりローカルファイルが検索されます。
    fmnet:/host1.domain.com/Databases/test.fmp12
    fmnet:/host2.domain.com/Databases/test.fmp12
    file:../Databases/test.fmp12

ファイルパスで変数を使用する例

変数を使用すると、多くのスクリプトステップ ([ファイルを挿入] スクリプトステップ[レコードのインポート] スクリプトステップなど) でファイルやフォルダパスを動的に指定できます。変数の使用を参照してください。

次の例では次の変数を想定しています:

$fileName = "test.xlsx"
$username = "JohnSmith"
$targetDir = "Documents/Clients"
$chosenType = "filewin"
$$source = "file:Documents/2019/demo files"
$driveLetter = "G:"
$docsFilePath = "file:" & Get ( ドキュメントパス ) & "test.xlsx"
$searchList = "file:old results.txt
               file:../archived/old results.txt"

目的

パスの一覧の入力

解決されたパスの一覧

ファイル名のみを指定する

file:testing/$fileName

file:testing/test.xlsx

パスに 1 つまたは複数のディレクトリを指定する

file:$username/$fileName

file:JohnSmith/test.xlsx

任意のサポートされているプラットフォーム上のドキュメントフォルダ内のファイルを指定する

$docsFilePath

Windows: file:/C:/Users/John Smith/Documents/test.xlsx

macOS: file:/Macintosh HD/Users/johnsmith/Documents/test.xlsx

さまざまなパスタイプの接頭語で、完全パスまたは相対パスを指定する

filewin:/$driveLetter/$targetDir/contacts.txt

imagemac:../$targetDir/photo.jpg

movie:$targetDir/movie.mp4

filewin:/G:/Documents/Clients/contacts.txt

imagemac:../Documents/Clients/photo.jpg

movie:Documents/Clients/movie.mp4

パスタイプの接頭語を動的に指定するか、長いパスの一部として指定する

$chosenType:/$driveLetter/$targetDir

$$source/$fileName

filewin:/G:/Documents/Clients

file:Documents/2019/demo files/test.xlsx

1 つまたは複数の完全なパスを指定する

$searchList

file:old results.txt

file:../archived/old results.txt

ファイルではなくディレクトリを指定する

file:$targetDir/

$$source/

file:$targetDir/$username/

file:Documents/Clients/

file:Documents/2019/demo files/

file:Documents/Clients/JohnSmith/

メモ 

  • FileMaker 形式のパスを標準のオペレーティングシステム形式または URL 形式に変換するには、ConvertFromFileMakerPath 関数を使用します。たとえば、[URL から挿入] スクリプトステップで使用する URL 形式に FileMaker パスを変換する場合です。逆に、標準パスから FileMaker 形式に変換するには、ConvertToFileMakerPath 関数を使用します。
  • 共有の Windows ボリュームに置かれているファイルにアクセスするには、ネットワークパス形式を使用します。この形式は、共有の Windows ボリュームでのみ使用することができます。共有の macOS ボリュームや、FileMaker ネットワーク共有では互換性はありません。
  • リモートの macOS ボリュームに置かれているファイルにアクセスするには、まずボリュームをマウントし、パスの先頭に filemac を付けます。たとえば、「myhost」サーバーの「Home」ボリューム上の「Clients」フォルダ内にある「test.xlsx」という名前のファイルへレコードをエクスポートするには、「myhost」で「Home」ボリュームをマウントした場合、パスは「filemac:/Home/Clients/test.xlsx」になります。
  • FileMaker ネットワークのトラフィックの速度が低下するため、ネットワークファイルパスの定義でアスタリスク (*) をワイルドカードとして使用することはできません。アスタリスクではなく、ホストの完全修飾ドメイン名を使用するか、ファイルパスにある変数を使用するようにしてください。
  • FileMaker データソース参照では変数を使用できます。FileMaker データソースの編集を参照してください。
  • 現在のデータベースがローカルに開かれている場合は、相対パスは現在のデータベースの場所から指定されたターゲットファイルへのパスです。現在のデータベースがリモートで開かれている場合は、相対パスは次の場所から指定されたターゲットファイルへのパスです:
    • パスが FileMaker Pro ファイルを指している場合はホストのネットワークアドレス (パスに含まれるフォルダは無視されます)
    • パスがその他のタイプのファイルを指している場合はユーザのドキュメントフォルダ
  • ファイルへのアクセスはクライアントによって異なります:
    • FileMaker Pro および FileMaker Go の場合、ローカルファイルへのアクセスはオペレーティングシステムでのみ制限されます。
    • サーバーサイドスクリプトの場合、ファイルアクセスは「Documents」フォルダとテンポラリフォルダに制限されます。サーバーサイドスクリプト内のパスを参照してください。
    • FileMaker WebDirect、FileMaker Data API、およびカスタム Web 公開はサーバーのファイルシステムにアクセスできません。