directory - ADA - 使用模式搜索目录 - 没有按预期返回

标签 directory ada

我的程序的这一部分应该列出名称中包含“.txt”的目录中的所有文件,但它在运行时不返回任何内容。如果我删除“.txt”并将其保留为空字符串“”,那么它会完美运行并返回所有文件名,包括 .txt 文件,所以我无法弄清楚我在这里做错了什么。

  procedure Search_Directory is
      use Ada.Directories;
      
      procedure Write_Search_Item(Search_Item : in Directory_Entry_Type) is
      begin
         Put(Item => Simple_Name(Directory_Entry => Search_Item));
         New_Line;
      end Write_Search_Item;

      Filter : Constant Filter_Type := (Ordinary_File => True,
                                        Special_File => False,
                                        Directory => True);         
   begin
      Search(Directory => Current_Directory,
             Pattern => (".txt"),
             Filter => Filter,
             Process => Write_Search_Item'Access);           
   end Search_Directory;

最佳答案

Search 函数定义在 Ada.Directories 包中,采用模式参数,该参数可以是空字符串,也可以是实现定义的形式 RM A.16 (111/ 2) .在 GNAT 中,此模式应该是 System.Regexp 中描述的正则表达式(另请参阅 here )(另请参阅 here ,第二种语法,“globbing 模式”)。

关于directory - ADA - 使用模式搜索目录 - 没有按预期返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62557505/

相关文章:

cross-compiling - GNAT GPL Ada 在为 Raspberry pi 交叉编译时失败将链接错误

javascript - ASP.NET:如何(以编程方式)将包含 .js 链接的 &lt;script&gt; 标记附加到 <head>?

c++ - 路径变得太长的解决方法?

javascript - rails : Include Javascript_include_tag outside default folders

c++ - Qt Creator/qmake - 从源目录加载 Assets 文件夹,而不是构建目录

objective-c - 检查路径是否是 ObjC 中的文件夹/bundle/别名

string - 存储字符串引用

types - 没有在Ada中指定范围而创建子类型的意义何在?

arrays - Ada 如何从用户处获取输入的整数列表并将其放入数组中

ada - Ada:pragma Pure/Remote_Types和系统类型