创建文件路径
在许多 FileMaker Pro 对话框中,您可以指定外部文件或 FileMaker 数据源的文件路径。在大多数情况下,每个已命名的文件或 FileMaker 数据源都可以包含一个或多个文件路径。如果希望 FileMaker 客户端搜索潜在文件的列表,请使用多文件路径。
有关添加 FileMaker 数据源和指定文件路径的信息,请参阅连接外部数据源。
FileMaker 客户端和主机支持特殊 FileMaker 格式的文件路径:
路径类型 |
说明 |
格式 |
相对 |
从当前数据库位置或从用户的 Documents 文件夹指定的目标文件的路径(参阅下文注释) |
|
完全本地或远程 (macOS) |
本地或远程卷上的目标文件或文件夹的绝对路径,从文件系统的最上层开始 |
|
完全本地 (Windows) |
Windows 中目标文件或文件夹的绝对路径,从文件系统的最上层开始 |
|
完全远程 (Windows) |
使用 Windows 文件共享功能而共享的 Windows 卷上目标文件或文件夹的绝对路径 |
|
FileMaker 网络 |
指向共享 FileMaker Pro 文件的网络路径 |
|
关于路径前缀
路径前缀决定 FileMaker 客户端何时可以使用特定路径:
- 以
file
、image
或movie
开头的前缀指定了文件的数据类型。仅适用于特定数据类型的脚本步骤需使用image
或movie
(如下所示);否则,使用file
。 - 以
win
、mac
或linux
结尾的前缀指定了可使用该路径的平台。如果未指定这些结尾,则可以在任何平台上使用该路径。 fmnet
前缀指定了指向共享 FileMaker Pro 文件的网络路径。
对于任何完整或相对路径,可使用以 file
开头的前缀。file
前缀可用在任何平台上。
因为创建多个特定于平台的路径可能很难,所以在许多情况下,仅使用 file
前缀(无平台结尾)以及 Get (临时路径)函数或 Get (文档路径)函数将单个路径指定为变量。在运行时,使用这些函数的变量路径专用于当前客户端的平台。例如,使用以下表达式定义的变量指定客户端临时文件夹中的 myfile.txt 文件:
"file:" & Get ( 临时路径 ) & "myfile.txt"
下表列出了所有支持的路径前缀,并提供了可用的位置示例。
路径前缀 |
用途 |
|
使用导入记录脚本步骤和导出记录脚本步骤导入和导出数据;FileMaker 数据源;使用插入文件脚本步骤插入到容器字段中的文件;使用数据文件的脚本步骤 |
|
分别使用插入 PDF 脚本步骤或插入图片脚本步骤插入到容器字段中的 Image 或 PDF 文件 |
|
使用插入音频/视频脚本步骤插入到容器字段中的音频/视频文件 |
多个文件路径的示例
在添加外部数据源或使用大多数访问文件的脚本步骤时,如果希望 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 ( 文件路径 ) & "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 ( 文件路径 ) & "test.xlsx" $searchList = "file:old results.txt file:../archived/old results.txt"
目的 |
路径列表项 |
经解析的路径列表 |
仅指定文件名 |
|
|
指定路径中的一个或多个目录 |
|
|
在任何支持的平台上的 Documents 文件夹中指定文件 |
|
Windows: macOS: |
使用各种路径类型前缀指定绝对路径或相对路径 |
|
|
动态指定路径类型前缀或指定为更长路径的一部分 |
|
|
指定一个或多个完整路径 |
|
|
指定一个目录(而非文件) |
|
|
注释
- 要将 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 和“自定义网络发布”无法访问服务器的文件系统。