Directories#
The package Directories provides operations for manipulating files and directories, and their names.
with Ada.IO_Exceptions;
with Ada.Calendar;
package Ada.Directories
with Global => in out synchronized is
-- Directory and file operations:
function Current_Directory return String;
procedure Set_Directory (Directory : String);
procedure Create_Directory(New_Directory: String; Form: String := "");
procedure Delete_Directory(Directory : String);
procedure Create_Path (New_Directory: String; Form: String := "");
procedure Delete_Tree (Directory : String);
procedure Delete_File(Name: String);
procedure Rename (Old_Name, New_Name: String);
procedure Copy_File (Source_Name, Target_Name: String; Form: String := "");
-- File and directory name operations:
function Full_Name (Name: String) return String with Nonblocking;
function Simple_Name (Name: String) return String with Nonblocking;
function Containing_Directory(Name: String) return String with Nonblocking;
function Extension (Name: String) return String with Nonblocking;
function Base_Name (Name: String) return String with Nonblocking;
function Compose(Containing_Directory: String := "";
Name : String;
Extension : String := "") return String
with Nonblocking;
type Name_Case_Kind is (Unknown, Case_Sensitive, Case_Insensitive, Case_Preserving);
function Name_Case_Equivalence(Name: String) return Name_Case_Kind;
-- File and directory queries:
type File_Kind is (Directory, Ordinary_File, Special_File);
type File_Size is range 0 .. <implementation-defined>;
function Exists (Name: String) return Boolean;
function Kind (Name: String) return File_Kind;
function Size (Name: String) return File_Size;
function Modification_Time(Name: String) return Ada.Calendar.Time;
-- Directory searching:
type Directory_Entry_Type is limited private;
type Filter_Type is array(File_Kind) of Boolean;
type Search_Type is limited private;
procedure Start_Search(Search : in out Search_Type;
Directory: String;
Pattern : String;
Filter : Filter_Type := (others => True));
procedure End_Search (Search: in out Search_Type);
procedure Get_Next_Entry(Search: in out Search_Type; Directory_Entry: out Directory_Entry_Type);
function More_Entries(Search: Search_Type) return Boolean;
procedure Search(Directory: String;
Pattern : String;
Filter : Filter_Type := (others => True);
Process : not null access procedure(Directory_Entry: Directory_Entry_Type))
with Allows_Exit;
-- Operations on Directory Entries:
function Simple_Name (Directory_Entry: Directory_Entry_Type) return String;
function Full_Name (Directory_Entry: Directory_Entry_Type) return String;
function Kind (Directory_Entry: Directory_Entry_Type) return File_Kind;
function Size (Directory_Entry: Directory_Entry_Type) return File_Size;
function Modification_Time(Directory_Entry: Directory_Entry_Type) return Ada.Calendar.Time;
Status_Error: exception renames Ada.IO_Exceptions.Status_Error;
Name_Error : exception renames Ada.IO_Exceptions.Name_Error;
Use_Error : exception renames Ada.IO_Exceptions.Use_Error;
Device_Error: exception renames Ada.IO_Exceptions.Device_Error;
end Ada.Directories;
Wide Directories and Wide Wide Directories#
The packages Wide_Directories
and Wide_Wide_Directories
provide operations for manipulating files and
directories, and their names.
- The specification of package
Wide_Directories
is the same as forDirectories
(including its optional child packagesInformation
andHierarchical_File_Names
), except that each occurrence ofString
is replaced byWide_String
. - The specification of package
Wide_Wide_Directories
is the same as forDirectories
(including its optional child packagesInformation
andHierarchical_File_Names
), except that each occurrence ofString
is replaced byWide_Wide_String
.
Hierarchical File Names#
The library package Directories.Hierarchical_File_Names
is an optional package providing operations for file
name construction and decomposition for targets with hierarchical file naming.
package Ada.Directories.Hierarchical_File_Names
with Nonblocking, Global => in out synchronized is
function Is_Simple_Name (Name: String) return Boolean;
function Is_Root_Directory_Name (Name: String) return Boolean;
function Is_Parent_Directory_Name (Name: String) return Boolean;
function Is_Current_Directory_Name(Name: String) return Boolean;
function Is_Full_Name (Name: String) return Boolean;
function Is_Relative_Name (Name: String) return Boolean;
function Simple_Name (Name: String) return String renames Ada.Directories.Simple_Name;
function Containing_Directory (Name: String) return String renames Ada.Directories.Containing_Directory;
function Initial_Directory (Name: String) return String;
function Relative_Name (Name: String) return String;
function Compose(Directory : String := "";
Relative_Name: String;
Extension : String := "") return String;
end Ada.Directories.Hierarchical_File_Names;