创建文件路径
在许多 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 (TemporaryPath) & "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 ( 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"
目的 |
路径列表项 |
经解析的路径列表 |
仅指定文件名 |
|
|
指定路径中的一个或多个目录 |
|
|
在任何支持的平台上的 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 和“自定义网络发布”无法访问服务器的文件系统。