创建文件路径

在许多 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 ( 临时路径 ) & "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 ( 文件路径 ) & "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"

目的

路径列表项

经解析的路径列表

仅指定文件名

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 和“自定义网络发布”无法访问服务器的文件系统。