首页 > 解决方案 > 如何从目录中获取文件列表?

问题描述

我正在尝试从D365 Business Central的目录中获取文件列表,因为不支持AL语言DotNetvar,所以我不知道如何获取这些文件路径。

在我的要求中,我知道文件夹的路径,但需要获取该文件夹中的实际文件路径。

例如:文件夹是 E:\Dynamically\

但我想获得像这样的文件路径:

  1. E:\动态\1.txt

  2. E:\动态\2.txt

  3. E:\动态\3.txt

我尝试在Codeunit 419(“文件管理”)中搜索内置功能,并尝试使用 Azure 功能。我正在添加我的代码以从该目录获取文件,但它是针对一个文件的。

action("Import Files")
            {
                ApplicationArea = All;
                Image = Import;

                trigger OnAction();
                var
                    FromFile: Text;
                    FileMgt: Codeunit "File Management";
                begin
                    Init();
                    Message(FileMgt.GetExtension('E:\Dynamically\' + 
                    Format(GetFileName)));
                    FromFile := 'E:\Dynamically\' + Format(GetFileName);
                    "Attached File".Import(FromFile);
                    "Attched File Name" := Format(GetFileName);
                    "Attached file Extension" := 
                     FileMgt.GetExtension(Format(GetFileName));
                    Insert(true);
                    MESSAGE('Successfully Import.');
                end;
            }

这是我的导入文件代码的结果。

在此处输入图像描述

标签: dynamicdynamics-navdynamics-business-central

解决方案


我建议您在Codeunit 419中使用GetClientDirectoryFilesListGetServerDirectoryFilesList ,它们都将NameValueBuffer表 813)和DirectoryPath(文本)作为参数。然后,您可以使用NameValueBuffer来获取所有文件。

这些功能可能仅适用于内部部署,因此您必须将扩展定位到app.json中的 internal 。


推荐阅读