创建文件路径

在许多 FileMaker Pro 对话框中,您可以指定外部文件或 FileMaker 数据源的文件路径。在大多数情况下,每个已命名的文件或 FileMaker 数据源都可以包含一个或多个文件路径。如果希望 FileMaker 客户端搜索潜在文件的列表,请使用多文件路径。

有关添加 FileMaker 数据源和指定文件路径的信息,请参阅连接外部数据源

FileMaker 客户端和主机支持特殊 FileMaker 格式的文件路径:

路径类型

说明

格式

相对

从当前数据库位置或从用户的 Documents 文件夹指定的目标文件的路径(参阅下文注释)

file:目录名/文件名

filemac:目录名/

filewin:../文件名

完全本地或远程 (macOS)

本地或远程卷上的目标文件或文件夹的绝对路径,从文件系统的最上层开始

filemac:/卷名/目录名/文件名

filemac:/卷名/目录名/

完全本地 (Windows)

Windows 中目标文件或文件夹的绝对路径,从文件系统的最上层开始

filewin:/驱动器号:/目录名/文件名

filewin:/驱动器号:/目录名/

完全远程 (Windows)

使用 Windows 文件共享功能而共享的 Windows 卷上目标文件或文件夹的绝对路径

filewin://电脑名/共享名/目录名/文件名

filewin://电脑名/共享名/目录名/

FileMaker 网络

指向共享 FileMaker Pro 文件的网络路径

fmnet:/主机名或 IP 地址/文件名

关于路径前缀

路径前缀决定 FileMaker 客户端何时可以使用特定路径:

  • fileimagemovie 开头的前缀指定了文件的数据类型。仅适用于特定数据类型的脚本步骤需使用 imagemovie(如下所示);否则,使用 file
  • winmaclinux 结尾的前缀指定了可使用该路径的平台。如果未指定这些结尾,则可以在任何平台上使用该路径。
  • fmnet 前缀指定了指向共享 FileMaker Pro 文件的网络路径。

对于任何完整或相对路径,可使用以 file 开头的前缀。file 前缀可用在任何平台上。

因为创建多个特定于平台的路径可能很难,所以在许多情况下,仅使用 file 前缀(无平台结尾)以及 Get (临时路径)函数Get (文档路径)函数将单个路径指定为变量。在运行时,使用这些函数的变量路径专用于当前客户端的平台。例如,使用以下表达式定义的变量指定了客户端临时文件夹中的 myfile.txt 文件:

"file:"& Get (TemporaryPath) & "myfile.txt"

下表列出了所有支持的路径前缀,并提供了可用的位置示例。

路径前缀

用途

file

filemac

filewin

filelinux

使用导入记录脚本步骤导出记录脚本步骤导入和导出数据;FileMaker 数据源;使用插入文件脚本步骤插入到容器字段中的文件;使用数据文件的脚本步骤

image

imagemac

imagewin

imagelinux

分别使用插入 PDF 脚本步骤插入图片脚本步骤插入到容器字段中的 Image 或 PDF 文件

movie

moviemac

moviewin

movielinux

使用插入音频/视频脚本步骤插入到容器字段中的音频/视频文件

多个文件路径的示例

在添加外部数据源或使用大多数访问文件的脚本步骤时,如果希望 FileMaker 客户端搜索潜在文件的列表,请使用多文件路径。系统按文件路径的显示顺序进行搜索。FileMaker 客户端会打开它能顺利找到的第一个文件,这将完成搜索。每个文件路径都必须维持在单独的行上。

  • 示例 1:在此示例中,FileMaker Pro 数据库必须在两个不同的操作系统上工作:Windows 系统和 macOS 系统,两个系统均访问本地文件。在这两个平台上,数据库都必须访问一个名为 test.xlsx 的本地文件。
    filewin:/C:/ExcelFiles/Hosted/test.xlsx
    filemac:/MacintoshHD/ExcelFiles/Hosted/test.xlsx

    或者,如果 Hosted 文件夹位于两个系统的 Documents 文件夹中,则可以使用设置为此表达式的变量来指定适用于两个平台的单个路径:

    "file:" & Get ( DocumentsPath ) & "Hosted/test.xlsx"

    请参阅下面的“在文件路径中使用变量的示例”。

  • 示例 2:在这个脚本化的记录导入示例中,FileMaker Pro 数据库应访问其托管的文件。但是,因为主机可能无法使用,所以您还要参考两个备用文件,一个托管在另一台服务器上,另一个本地存储在您的硬盘上。如果第一个网络文件不可用,FileMaker 客户端将搜索第二个网络文件。如果第二个网络文件也不可用,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 ( DocumentsPath ) & "test.xlsx"
$searchList = "file:old results.txt
               file:../archived/old results.txt"

目的

路径列表项

经解析的路径列表

仅指定文件名

file:testing/$fileName

file:testing/test.xlsx

指定路径中的一个或多个目录

file:$username/$fileName

file:JohnSmith/test.xlsx

在任何支持的平台上的 Documents 文件夹中指定文件

$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

指定一个或多个完整路径

$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 函数 — 例如,将 FileMaker 路径转换为 URL 格式以在 从 URL 插入脚本步骤 中使用。反之,请使用ConvertToFileMakerPath 函数将标准格式转换为 FileMaker 格式路径。
  • 要访问位于共享 Windows 卷上的文件,请使用网络路径格式。此格式仅与共享的 Windows 卷兼容。它与共享的 macOS 卷或 FileMaker Network 共享功能不兼容。
  • 要访问位于远程 macOS 卷上的文件,应确保该卷是最先安装的卷,并且路径开头为 filemac。例如,要将记录导出到 myhost 服务器上 Home 卷中 Clients 文件夹内名为 test.xlsx 的文件中,路径应为 filemac:/Home/Clients/test.xlsx(如果将 Home 卷安装在 myhost 上)。
  • 请勿在网络文件路径中使用星号 (*) 作为通配符,因为这会减缓 FileMaker 网络流量。在可能的情况下,请将星号替换为主机的完全限定域名,或在文件路径中使用变量。
  • 您可以使用 FileMaker 数据源参考中的变量。请参阅编辑 FileMaker 数据源
  • 如果当前数据库在本地打开,则相对路径指向从当前数据库位置指定的目标文件。如果当前数据库在远程打开,则相对路径指向从以下位置指定的目标文件:
    • 如果路径指向 FileMaker Pro 文件,则从主机的网络地址(忽略路径中的任何文件夹)
    • 如果路径指向任何其他类型的文件,则从用户的 Documents 文件夹
  • 对文件的访问因客户端而异:
    • 对于 FileMaker Pro 和 FileMaker Go,仅由操作系统限制对本地文件的访问。
    • 对于服务器端脚本,访问限制为 Documents 文件夹和临时文件夹。请参阅服务器端脚本中的路径
    • FileMaker WebDirect、FileMaker Data API 和“自定义网络发布”无法访问服务器的文件系统。