MODULE Directory; (* ========================================================================= Example GPCP .NET Console Program Display the list of files with attributes in the current directory Author : Chris Burrows Created: Dec 2007 (c) 2007-2008 CFB Software http://www.cfbsoftware.com/gpcp ========================================================================= *) IMPORT IO := "[mscorlib]System.IO", Sys := "[mscorlib]System", Out, CPmain; VAR dirName: Sys.String; (* ==================================================================== *) PROCEDURE OutAttribute(flagSet: BOOLEAN; c: CHAR); BEGIN IF flagSet THEN Out.Char(c) ELSE Out.Char('-') END END OutAttribute; (* ==================================================================== *) PROCEDURE ListFiles(dirName: Sys.String); VAR directory: IO.DirectoryInfo; files: POINTER TO ARRAY OF IO.FileInfo; attrSet: SET; i: INTEGER; BEGIN directory := IO.DirectoryInfo.init(dirName); files := directory.GetFiles(); FOR i := 0 TO LEN(files) - 1 DO attrSet := BITS(files[i].get_Attributes()); OutAttribute(IO.FileAttributes.ReadOnly IN attrSet, 'R'); OutAttribute(IO.FileAttributes.Hidden IN attrSet, 'H'); OutAttribute(IO.FileAttributes.System IN attrSet, 'S'); Out.String(' ' + files[i].get_Name()); Out.Ln() END; Out.Ln() END ListFiles; (* ==================================================================== *) BEGIN dirName := IO.Directory.GetCurrentDirectory(); Out.String(dirName + ':'); Out.Ln(); ListFiles(dirName) END Directory.