You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在D365 Business Central的AL语言中获取目录文件列表?

获取Dynamics 365 Business Central指定目录下的所有文件路径并批量导入

既然不能用DotNet变量,其实Codeunit 419("File Management")里就有现成的方法帮你搞定批量文件遍历,不用额外依赖Azure函数。你之前的代码只处理了单个文件,我们可以用这个Codeunit的GetFilesInFolder方法来获取指定文件夹下的所有文件路径,然后循环处理每一个文件。

先看修改后的完整代码,我帮你调整成批量处理的逻辑:

action("Import Files") {
    ApplicationArea = All;
    Image = Import;
    trigger OnAction();
    var
        FileMgt: Codeunit "File Management";
        FolderPath: Text;
        FilePaths: array[1000] of Text; // 根据实际需求调整数组大小
        FileCount: Integer;
        i: Integer;
        FromFile: Text;
    begin
        Init();
        FolderPath := 'E:\Dynamically\';

        // 检查文件夹是否存在
        if not FileMgt.FolderExists(FolderPath) then begin
            MESSAGE('指定的文件夹不存在,请检查路径!');
            exit;
        end;

        // 获取文件夹下的所有文件路径
        FileCount := FileMgt.GetFilesInFolder(FolderPath, FilePaths);

        if FileCount = 0 then begin
            MESSAGE('文件夹中没有可导入的文件!');
            exit;
        end;

        // 循环处理每个文件
        for i := 1 to FileCount do begin
            FromFile := FilePaths[i];
            "Attached File".Import(FromFile);
            "Attched File Name" := FileMgt.GetFileName(FromFile); // 直接用FileMgt的方法获取文件名更可靠
            "Attached file Extension" := FileMgt.GetExtension(FromFile);
            Insert(true);
        end;

        MESSAGE('成功导入 %1 个文件!', FileCount);
    end;
}

代码关键点说明:

  • GetFilesInFolder方法:这是Codeunit 419的核心方法,第一个参数是目标文件夹路径,第二个参数是用来存储所有文件完整路径的数组,返回值是文件的数量。注意数组大小要根据你可能的文件数量调整,避免溢出。
  • 文件夹存在检查:先判断目标文件夹是否存在,避免后续操作报错。
  • 批量循环处理:通过遍历FilePaths数组,对每个文件执行和你之前单文件一样的导入逻辑,确保所有文件都能被处理。
  • 文件名和扩展名获取:直接用FileMgt.GetFileName(FromFile)和FileMgt.GetExtension(FromFile)来处理完整路径,比手动拼接更稳妥,避免路径格式异常导致的错误。

如果需要过滤特定扩展名的文件,还可以用GetFilesInFolderWithFilter方法,比如只导入txt文件:

FileCount := FileMgt.GetFilesInFolderWithFilter(FolderPath, '*.txt', FilePaths);

这样就能轻松实现批量获取文件路径并导入的需求了,完全不用依赖DotNet或者外部服务。

内容的提问来源于stack exchange,提问作者Nav Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:19:03