处理文件对象
可以使用多种 AL 方法打开文件、在 Dynamics 365 Business Central 中导入和导出文件,等等。
文件数据类型允许对文件进行访问。 可以在文本或二进制模式下打开文件。 通过分别创建输入和输出流,可以读取或写入文件。
对于需要进行解析以解释输入或在发送输出时需要使用特殊格式的基于文本的数据文件,可以使用文件处理导入和导出这些文件。 例如,可以使用文件处理来导入非面向记录且不具有固定宽度或分隔结构的数据。 通过文件变量,可以从任何外部文件导入数据或将数据导出到任何外部文件。
要访问外部文件,首先声明一个文件类型的变量。 该变量是一种复杂的数据类型,具有许多用于打开、读取、写入和关闭外部文件的函数。
使用每个文件变量一次访问一个文件。 如果要同时访问多个文件,则必须为访问的每个文件声明一个文件变量。
可以使用多种 AL 方法打开文件、在 Business Central 中导入和导出文件,等等。 并非所有这些函数都可以在 SaaS 版本的 Business Central 中使用,因为用户无法访问云服务器的文件系统。 反之,Business Central Server 也无法访问用户的本地文件系统。 为了能够处理文件,需要使用流。
有关方法列表,请参阅文件数据类型。
作为 SaaS 版本的 Business Central 的开发人员,您只能使用 UploadIntoStream 和 DownloadFromStream 函数。 其他函数仅适用于 Business Central 的本地版本。 这些函数需要能够访问文件,而不是流。
如果您曾经使用过本地函数,我们建议您在处理文件时遵循以下最佳做法:
使用完全限定路径来消除不确定性。
在设计使用文件的应用程序时,注意操作系统文件的访问限制。 考虑哪些用户可以访问文件和目录,以及需要为文件目录应用哪些访问控制列表 (ACL)。
除了文件数据类型之外,您还可以在 codeunit 419 文件管理中找到一些实用函数,但大部分函数都在本地环境中使用。
文本编码是将数据字节转换为系统或程序的用户可读字符的过程。 在将文件作为文本或流导入时,文本编码格式可确保在 Business Central 中正确显示所有特定语言字符。 在将文件作为文本或流导出时,文本编码格式可确保在将要读取导出文件的系统或程序中正确显示所有特定语言字符。
可以使用几种行业文本编码格式以及支持不同格式的多个系统。 在内部,Business Central 使用 Unicode 编码。 它支持使用 XMLport 导出和导入以下几种格式的数据:
MS-DOS
UTF-8
UTF-16
ANSI 编码(Windows 编码)
数据按如下方式导入和导出:
从外部文件导入数据时,系统会使用由 TextEncoding 属性或参数指定的格式读取数据,然后在 Business Central 中将其转换为 Unicode。
在将数据导出到外部文件时,这些数据会从 Business Central 中的 Unicode 进行转换,然后使用由 TextEncoding 属性或参数指定的格式写入文件。
可以将文本编码设置为与将要导出到或从中导入的系统或程序兼容的编码格式。
在 Business Central Online 中,无法控制 Business Central Server 上的系统区域设置。 此处,建议使用 UTF8/UTF16 文本编码格式。