Directory ADA-使用模式搜索目录-不按应有的方式返回
我的程序的这一部分应该列出目录中包含名称中“.txt”的所有文件,但在运行时不会返回任何内容。如果我删除“.txt”并将其保留为空字符串“”,那么它将正常工作并返回所有文件名,包括.txt文件,因此我无法找出我在这里做错了什么Directory ADA-使用模式搜索目录-不按应有的方式返回,directory,ada,Directory,Ada,我的程序的这一部分应该列出目录中包含名称中“.txt”的所有文件,但在运行时不会返回任何内容。如果我删除“.txt”并将其保留为空字符串“”,那么它将正常工作并返回所有文件名,包括.txt文件,因此我无法找出我在这里做错了什么 procedure Search_Directory is use Ada.Directories; procedure Write_Search_Item(Search_Item : in Directory_Entry_Typ
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;
在包
Ada.Directories
中定义的Search
函数接受一个模式参数,该模式参数可以是空字符串,也可以是实现定义的形式。在GNAT中,此模式应该是System.Regexp
中描述的正则表达式(另请参见第二个语法,一个“全局模式”)。您可以尝试*.txt
。是的,现在可以了,谢谢您您的操作系统可能有一个程序来列出与模式匹配的文件(dir
用于DOS/Windows,而ls
用于基于Unix的操作系统)。我们将该程序称为
。.txt
在您的系统上做什么?您将使用什么模式来匹配包含.txt
的所有文件?您应该为搜索提供相同的模式。